黑马程序员技术交流社区

标题: 大家给看下这段代码,关于二级指针和多级指针 [打印本页]

作者: 胥鹏飞    时间: 2015-8-19 10:08
标题: 大家给看下这段代码,关于二级指针和多级指针
int a=5;
int* p=&a;
int **m=&p; //*(*m)
printf("&a = %p\n",&a);
printf("p = %p\n",p);
printf("&p = %p\n",&p);

printf("m = %p\n",m);
printf("*m = %p\n",*m);
printf("%d\n",**m);

如果是*****m怎么理解**m和*m?


作者: tangbinbin    时间: 2015-8-20 12:17
*m定义了一个指向a的指针变量,p=&a,*p=a,
作者: 胥鹏飞    时间: 2015-8-20 13:11
首选来分析*m=p,   然后是也就是说m是个指针,存放的是p这个变量的地址,p有两个角色,一个是指针,一个是变量,但是这个变量也是0*1234---类的变量

当打印p的地址,那就是a的地址;当打印&p时候,就是把p看成变量处理,是打印的p变量的地址,当打印*m,是打印的p指针的地址也就是a的地址。当打印**m时候,打印的是m指针的地址(这里把**m也看成指针和变量两个角色),也就是p变量的地址。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2