c语言题目求大神们解释啊这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?int a[5]={2,4,6,8,10},*P,* *k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",* *k);A. 4 4 B. 2 2 C. 2 4
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/11 15:32:57
![c语言题目求大神们解释啊这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?int a[5]={2,4,6,8,10},*P,* *k;p=a; k=&p;printf(](/uploads/image/z/955103-23-3.jpg?t=c%E8%AF%AD%E8%A8%80%E9%A2%98%E7%9B%AE%E6%B1%82%E5%A4%A7%E7%A5%9E%E4%BB%AC%E8%A7%A3%E9%87%8A%E5%95%8A%E8%BF%99%E9%87%8C%E9%9D%A2%E7%9A%84%2A%2Ak%E6%98%AF%E4%BB%80%E4%B9%88%E4%B8%9C%E8%A5%BF%3F%E7%AC%AC%E4%B8%80%E6%AC%A1%E9%81%87%E8%A7%81.%E5%85%B6%E4%B8%AD+k%3D%26p%E6%98%AF%E4%B8%8D%E6%98%AF%E7%AD%89%E4%BB%B7%E4%BA%8E%E5%8F%96a%E6%95%B0%E7%BB%84%E7%9A%84%E9%A6%96%E5%9C%B0%E5%9D%80%3Fint+a%5B5%5D%3D%7B2%2C4%2C6%2C8%2C10%7D%2C%2AP%2C%2A+%2Ak%3Bp%3Da%3B++k%3D%26p%3Bprintf%28%22%25d%22%2C%2A%28p%2B%2B%29%29%3Bprintf%28%22%25d%5Cn%22%2C%2A+%2Ak%29%3BA.+4+4++++++++++B.+2+2++++++++C.+2+4)
c语言题目求大神们解释啊这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?int a[5]={2,4,6,8,10},*P,* *k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",* *k);A. 4 4 B. 2 2 C. 2 4
c语言题目求大神们解释啊
这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d",*(p++));
printf("%d\n",* *k);
A. 4 4
B. 2 2
C. 2 4
D. 4 6
c语言题目求大神们解释啊这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?int a[5]={2,4,6,8,10},*P,* *k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",* *k);A. 4 4 B. 2 2 C. 2 4
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("%d\n",* *k);//* *k等价于*(*k).对k解引用为p.所以*(*k)等价于*p.这时p指向的是a[1]
所以输出为4
总结输出为24