选择题
有以下程序:
#include <stdio.h>
int k=5;
void f(int *s)
{ s=&k;
*s=k;
}
main()
{ int m=3;
f(&m);
printf('%d,%d\n',m,k);
}
程序运行后的输出结果是
A、
3,3
B、
5,5
C、
3,5
D、
5,3
【正确答案】
C
【答案解析】
函数f的功能是:定义一个临时的整型指针变量s,指向全局变量k,然后用k的值对s指向的内存地址进行赋值,结果当然是k的值不变。在main函数中调用f函数,虽然使用m的地址初始化s,但是s在f函数内部又被指向k的地址,所以s的后续操作对m没有任何影响,因此最后输出为3,5,答案为选项C。
提交答案
关闭