如来神掌之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
经过分析,打印后的结果是:
252510255555105510101010
相关文章推荐
- C语言 二级指针内存模型①
- 【C语言提高40】结构体套一级指针和二级指针
- C语言,二级指针,矩阵操作
- C语言 二级指针详解及示例代码
- c语言实现单链表&二级指针在单链表的应用
- [笔记]C语言中二级指针简单例子
- C语言中,二级指针的三种内存模型
- C语言二级指针的三种模型
- C语言:一级指针,二级指针,三级指针,指针数组,数组指针的综合示例
- C语言中的二级指针和二维数组问题
- C语言 二级指针内存模型混合实战
- 【C语言】二级指针,函数指针,回调函数
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- C语言:结构体中一级指针和二级指针的创建与释放示例
- C语言中二级指针的用处
- c语言中二级指针空间的分配
- 【C语言提高25】二级指针做输入的第二种内存模型:二维数组
- C语言中二级指针的作用
- C语言 二级指针内存模型②
- android ndk 02 C语言 二级指针 指针运算 指针与数组