A-A+
若有以下程序 {}j}include<stdio.h> yoidsp(int*a){ int
问题详情
若有以下程序 {}j}include<stdio.h> yoidsp(int*a){ intb=2; *a=*a*2: printf(%d,,*a); a=&b: *a=*a*2: printf(%d,,*a);) main(){ intk=3: sp(&k); printf(%dn,k);} 则程序的输出结果是
A.6,4,6
B.6,4,3
C.6,12,12
D.9,4,9
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
本题考查了指针作为函数的参数,可以接收实参变量的地址,改变实参的值。主函数调用sp(&k),执行sp函数a指向向k,执行语句*a=*a*2后a指向空间的值k的值为6,改变a的指向以后,此时a指向b,则执行*a=*a*2以后,a指向空间b的值为4。调用结束返回土函数,输出k的值为6。