若有以下程序 #include <stdio.h> int k=7; void f(int **s) { int *t=&k; *s=t; printf("%d,%d,%d,"

admin2021-04-28  33

问题 若有以下程序
     #include <stdio.h>
     int  k=7;
     void f(int  **s)
     {  int  *t=&k;
        *s=t;
        printf("%d,%d,%d,", k, *t, **s);
     }
     main()
     {  int  i=3,*p=&i, **r = &p;
        f(r);     printf("%d,%d,%d\n", i, *p, **r);
     }
则程序的输出结果是

选项 A、3,3,3,7,7,7
B、3,7,7,7,7,7
C、7,7,7,3,3,3
D、7,7,7,3,7,7

答案D

解析 在主函数中分别给整型变量i,指针型变量p和指向指针的指针变量r赋初值;调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过printf("%d,%d,%d,", k, *t, **s);语句输出7,7,7;返回主函数,通过printf("%d,%d,%d\n", i, *p, **r);输出3,7,7,因此D选项正确。
转载请注明原文地址:https://jikaoti.com/ti/6Iz0FFFM
0

最新回复(0)