一个考察指针的小程序

来源:互联网 发布:手机批量卸载软件 编辑:程序博客网 时间:2024/05/17 23:33

下面有个小程序,输出结果是多少?

#include<stdio.h>int main(){    int a[5]={1,2,3,4,5};    int *p, **k;    p = a;    k = &p;    printf("%d",*(p++));    printf("%d",**k);    return 0;}

输出结果应该为12; 

分析:

p开始指的是1, 而k是二级指针,k的值是p的地址,p++后,p的地址改变了,所以为2


这里,如果没想明白,就容易认为,在k=&p的时候,k的值已经确定了。其实这里是错误的。

p的值是一个int型的地址,k的值是一个int*指针,**k就是int的值,现在改变了



0 0