若有以下程序: #include int k=7,m=5; void f(int **s) { int *t=&k; 8=&t; *s=&m; printf("%d,%d,%d,",k,*t,**s)

admin2021-04-28  35

问题 若有以下程序:
    #include
    int k=7,m=5;
    void f(int  **s)
    {  int  *t=&k;
    8=&t;  *s=&m;
    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、7,5,7,3,5,7,
B、7,5,7,3,3,3,
C、7,5,5,3,3,3,
D、7,7,5,3,3,3,

答案C

解析 在主函数中首先初始化整型变量i,将i的地址赋给指针变量p,再将指针变量p的地址赋给指向指针的指针变量r;调用f函数,将变量r的值传递给变量s;由于k和m分别赋值7和5,执行语句“printf("%d,%d,%d,",k,,*t,**s);”的结果为7,5,5;返回主函数,执行语句“printf("%d,%d,%d、n",  i,*p,**r);”的结果为3,3,3。因此C选项正确。
转载请注明原文地址:https://jikaoti.com/ti/1fz0FFFM
0

最新回复(0)