若有以下程序 #include<stdio.h> void sp(int*a){int b=2; a=&b: *a=*a*2; printf("%d,",*a);} main(){int k=3,*p=&k; sp(p); printf("%d,%d\n"

admin2020-11-23  17

问题 若有以下程序
#include<stdio.h>
void sp(int*a){int b=2;
a=&b:
*a=*a*2;
printf("%d,",*a);}
main(){int k=3,*p=&k;
sp(p);
printf("%d,%d\n",k,*p);
}
则程序的输出结果是

选项 A、4,3,4
B、4,3,3
C、6,3,6
D、6,6,6

答案B

解析 主函数中定义指针变量p指向k,调用函数sp(p),将k的地址传递给形参指针a,函数转到sp运行,a指向b的地址,表达式*a=*a*2,相当于b=b*2,得到*a的数据4输出。函数调用结束,此时a和b的空间撤销,而对实参k和p的值并没有改变,仍旧是3。
转载请注明原文地址:https://kaotiyun.com/show/dw3p777K
0

相关试题推荐
最新回复(0)