永发信息网

如何理解指向指针的指针

答案:2  悬赏:80  手机版
解决时间 2021-01-30 08:05
如何理解指向指针的指针
最佳答案
其实你的理解是完全正确的,只不过在这里你没有把malloc这个函数完全理解。函数CreateList()是为了创建一个列表。
所以根据你的第一段代码你会这样写:
LinkList* ha;
CreateList(&ha);
而根据你的第二段代码你会这样:
LinkList* ha;
CreateList(ha);
第二段代码的ha完全是如你所说的那样是值传递的。再看你的函数体,我们知道形参名为L,它所指向的地址会等于ha所指向的地址(也就是说L的值等于ha的值)。可是在你的函数体内你用malloc申请了一块内存,你把这块内存的地址赋值给了L(此时L的值就不再等于ha的值了)现在malloc所申请有内存也只有L能引用,而ha根本没有得到分配的内存。
如果用你的第一段代码:
我们知道传进去的是ha的地址。此时你把malloc申请的内存的地址赋值给*L,而*L刚好也就是ha。所以也就相当于给ha申请了一块内存。*L和ha都指向了新开辟的内存。这才算得上是真正的创建了一个列表。
malloc这个函数是在内存中申请一片空间,并返回指向这片空间的地址。
全部回答
指针函数不同于函数指针。 函数指针声明为指针,它与变量指针不同之处是,它不是指向变量,而是指向函数。 函数指针有两个用途:调用函数和做函数的参数. 指针函数是函数,函数返回的不是数值,而是指针。 写法: 返回类型标识符 *返回名称(形式参数表){ 函数体 } 例如: float *find(); main() { static float score[][4]={{60,70,80,90},{56,89,34,45},{34,23,56,45}}; float *p; int i,m; printf("enter id: 1 or 2 or 3:"); scanf("%d",&m); printf("goup %d data are:\n",m); p=find(score,m-1); for(i=0;i<4;i++) printf("%5.2f\t",*(p+i)); } float *find(float(*pionter)[4],int n) { float *pt; pt=*(pionter+n); return(pt); } 指针函数是不是很有用处,我也说不上来。不用它,也可以用别的方法写程序。用不用,是个人喜好。 但无论怎么说,指针函数,函数指针,指向指针的指针给了编程者更多的方法的选择,增加了灵活性和多样性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
路宝汽车修理厂(贵港平南县)地址好找么,我有
丽蓉照相馆怎么去啊,我要去那办事
孙权属相是什么
下列物质的用途,既利用了物质的物理性质又利
麇惊的意思是什么啊?知道的请说下!
顺达汽车修理厂(贵港平南县)地址有知道的么?
华杰照相馆怎么去啊,我要去那办事
“乐人之乐,人亦乐其乐;忧人之忧,人亦忧其
本田奥德赛发动机故障灯亮
星驰名车(贵港平南县)地址在什么地方,我要处
泥鳅的营养价值怎么吃才有营养
散棊的意思是什么啊?知道的请说下!
附二医院拔牙要多少钱?
40G的硬盘实际是多大,怎样计算呀
请问卧室里养什么花又好又香?
推荐资讯
豪门夜焰量贩式KTV地址好找么,我有些事要过
我神将世界战神马超70级战斗力1845,满级战斗
32x18+32x32简便方法怎么计算
亲亲袋鼠(瑞安路)地址有知道的么?有点事想过
你眼中的摩羯男喜欢上一个女孩的时候是什么样
【望远镜选购】如何选购反射式望远镜上海博冠
苹果置业董事长罗辉是徐州市人大代表吗
笑颜专业美发地址在哪,我要去那里办事
利名场的意思是什么啊?知道的请说下!
明水盛鑫快捷宾馆地址好找么,我有些事要过去
屈肘时,下列骨骼肌的协作关系正确的是A. 肱
亡阴证的典型舌脉是()A.舌红干,脉疾无力B.舌
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?