当前位置: > c语言题目求大神们解释啊...
题目
c语言题目求大神们解释啊
这里面的**k是什么东西?第一次遇见.其中 k=&p是不是等价于取a数组的首地址?
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d",*(p++));
printf("%d ",* *k);
A. 4 4
B. 2 2
C. 2 4
D. 4 6

提问时间:2021-05-08

答案
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 ",* *k);//* *k等价于*(*k).对k解引用为p.所以*(*k)等价于*p.这时p指向的是a[1]
所以输出为4
总结输出为24
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.