若有以下程序 #include 2nt k=7; void f(int*s) { int*t=&k; *s=t; printf("%d,%d,%d,",k,*t,**s); } main()

admin2016-12-28  23

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

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

答案D

解析 本题考查了二级指针,二级指针可以保存一级指针的地址。主函数中p指向i,r指向p,函数调用后s指向p,在f函数中t指向全局变量k=7,s指向t,同时s保存了实参p的地址,此时p也指向t,输出三个7,流程转到主函数,i的值为3,p以及r的值为7。
转载请注明原文地址:https://jikaoti.com/ti/zVi0FFFM
0

最新回复(0)