永发信息网

C指针问题,为什么需要指针?

答案:5  悬赏:20  手机版
解决时间 2021-04-03 15:39
C指针问题,为什么需要指针?
最佳答案
指针在你这个小程序能体现多大价值?
等需要高级点的数据结构,以及高级点的算法,就需要指针了。

谭浩强这题,是体现指向函数的指针的作用,用指针保存函数的地址,调用这个函数,可直接通过指针调用。

在QT,GTK之类的GUI库里,它们会提供一个函数,供开发者将 自定义函数 与指定事件关联;
因为 GUI库的开发者 不知道 使用者 是用什么函数,只有用个函数指针,保存 使用者 给的函数的地址,等事件触发后,通过该函数指针调用使用者的自定义函数。追问也就是说这里根本不需要指针是吧追答动态内存需要用到指针。
被调用的函数,要使传入的参数的值的变化能够作用在上级函数中,那么,需要指针保存该变量的地址,以对其操作。

小程序功能简单,又不需要考虑内存开销,用不了多少C语言高级点的功能。
全部回答
注意:练习函数指针作为参数的例题
那我问你:你不用指针,你现在能理解函数指针了吗?
要是你不学会用指针的话,那你没学会C语言。。。。
有时是必须要有指针的 否则你没法解决问题。。。。
道理就这么简单!
书中举例没问题!
纠结这干嘛,学程序的都知道谭浩强的书不好,他只是为了引出指针而已,指针的作用就在于指向地址,在后面链表啊,堆栈啊,队列啊,串啊都会很有用。纠结谭浩强书的每个字句都是在自找麻烦罢了.....
年轻人,虽然我没看你的代码,你说不用指针代码更少,不错当然节省了空间,但是你想过用指针比不用指针速度快吗? 这其中的空间和时间关系是很微妙的。 这其实都不重要,重要的是,如果想精通C,想成为C高手,我劝你 以后写程序能用指针尽量用指针,数组能被指针代替的,尽量用指针,不是仅仅掌握了if while 等结构就行了的,,指针、结构体等才是C的精华。 比如 int *(*(*a)[5])(int *) ;你懂吗 、 二维数组 a[2][2]; a、*a、**a三者有什么区别, *a[1] (*a)[1]又有什么区别 当初我也自觉的会了if while 等结构,自信满满,,后来看了C和指针 这书后,自信被打得支离破碎,才知道自己多肤浅。
原先给的例子并不好。
例子如下:
#include
int max(int a,int b)
{
if(a>b) return a;
else return b;
}
int min(int a,int b)
{
if(a else return b;
}
int add(int a,int b)
{
return a+b;
}
int (*pArr[])(int, int) = {&max, &min, &add}; // 创建一个函数指针数组来存上述函数
int fun(int x,int y,int (*p)(int,int))
{
return (*p)(x,y);
}
int main()
{
int a=13,b=22,n;
printf("please choose 1,2 or 3\n");
scanf("%d",&n);
//调用时不再需要判断n的值取调用哪个函数了,对应指针数组就可以了,方便了吧。
printf("%d",fun(a,b,pArr[n-1]));
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个电动机两路380V供电相位怎样检查
湖北襄阳农网变台安装中,跌开与避雷器之间安
谁可以不换号改成移动39元超牛卡套餐
美国cas国际干洗地址在哪,我要去那里办事,
char *s1="abc",&s1是什么意思
广心菜能与葫萝卜搭配吃吗?我吃了之后拉肚子
10岁女孩子身高130CM体重25Kg怎么办
重庆苹果教育英国夏令营14日多少钱
彩虹六号安卓版在哪能下载?
求带发字的美发店名字,希望大家帮帮忙
质量认证体系 ISO 后面的数字是什么含义,又
好邻居有巧克力?
娘家里闹不去,阿门了这你不去歌词
庆华集团日照1000万吨甲醇精细化工园地点在哪
家天的成语疯狂猜成语
推荐资讯
GTX750ti和讯景r9 370 4g显卡哪个好?
上海涤太太环保科技有限公司怎么样?
说说我的祖国作文500字
众易行网络科技(武汉)有限公司是骗人的吗
珠江tn1和威腾哪个好
宋庄中学地址在哪,我要去那里办事,
主板:戴尔om5dcd处理器第二代酷睿i5—2400 3
中国能炒股票指数吗想炒股指,那为高人告
那种像什么dior高级定制的礼服大概多少钱??
大连金三角和香炉礁哪的鱼缸便宜
长得帅的男生是不是很容易出轨的?
岗位HSE职责包括哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?