您的位置:首页 > 编程语言 > C语言/C++

如来神掌之c语言二级指针

2014-03-23 13:58 253 查看
分析二级指针:都是围绕着以下几点来变的1.对原始变量进行赋值,则原始变量、指向他的一级指针、二级指针值都会改变简单点就是:对num,*p_num,**pp_num中任何一个赋值,这三个的值都会改变2.对一级指针进行赋值,只改变一级指针和二级指针的值,一级指针原来指向的值不会改变,简单点:对p_num,*pp_num中任何一个进行赋值,这俩的值都会改变,num的值不会改变,新值是对p_num赋值的新一级指针所指向的值现在需要一点耐心,举一个简单的小例子:#include <stdio.h>int main(){int pt=0,num=25,a=55;int*p_pt=&pt,*p_num=#int**pp_pt=&pt;*pp_pt=p_num;printf(“%d\n”,*p_pt);printf(“%d\n”,*p_num);printf(“%d\n”, pt);printf(“%d\n”,num);**pp_pt=a;printf(“%d\n”,*p_pt);printf(“%d\n”,*p_num);printf(“%d\n”, pt);printf(“%d\n”,num);*p_num=pt;printf(“%d\n”,*p_pt);printf(“%d\n”,*p_num);printf(“%d\n”, pt);printf(“%d\n”,num);return 0;}分析方法:程序开始 pp_pt -> p_pt -> pt=10p_num->num=25a = 551. 执行*pp_pt=p_num;*pp_pt=p_num实际相当于p_pt=p_num,作用改变了p_pt变量的值,从而p_pt不在指向pt了,而是指向新值所指向的值 pt=10pp_pt->p_pt-> num=25 p_num -> num=25 a=552.执行**pp_pt=a;执行完第一步后,**pp_pt=num=25,把a赋值给**pp_pt,相当于是把a赋值给num pt=10pp_pt->p_pt ->num=a=55 p_num -> num=a=55 a=553.执行*p_num=pt;*p_num=pt,相当于是num=pt pt=10pp_pt->p_pt->num=pt=10 p_num -> num=pt=10 a=55
经过分析,打印后的结果是:
252510255555105510101010
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息