有以下程序: #include int k=5; void f(int,*s) { s=&k; *s=k: } main() { int m=3; f(&m); print

admin2017-07-05  20

问题 有以下程序:
    #include
    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选项。
转载请注明原文地址:https://kaotiyun.com/show/JpDp777K
0

最新回复(0)