szhaoz
幼苗
共回答了17个问题采纳率:94.1% 举报
int a[5]={2,4,6,8,10},*P,* *k;这句话等价于
int a[5]={2,4,6,8,10};
int *P;
int **k;
这三句.
a是一个数组
p是一个int指针
k是一个指向int指针的指针
p=a; //p指向a数组的首地址
k=&p; //取p指针的地址给k.
printf("%d",*(p++));//p++表达式返回的是当前的p值,即数组首地址.解引用后实际上输出的是a[0]
输出为2
但是输出完了之后其实p要自增,指向a[1]
printf("%dn",* *k);//* *k等价于*(*k).对k解引用为p.所以*(*k)等价于*p.这时p指向的是a[1]
所以输出为4
总结输出为24
1年前
2