有以下程序 #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,

admin2019-07-10  10

问题 有以下程序
#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的值不变;另外在调用函数f()过程中,虽然使用m的地址初始化s,但是s在f函数内部又被指向k的地址,所以s的后续操作对m没有任何影响,因此最后输出为3,5,答案为C选项。
转载请注明原文地址:https://www.kaotiyun.com/show/iZID777K
0

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