有以下程序: #include #include void fun(int*,*s,int x[2][3]) {**s=*(x[1]+1);} main() {int a[2][3]={1,2,3,4,5,

admin2019-01-11  24

问题 有以下程序:
    #include
    #include
    void fun(int*,*s,int x[2][3])
    {**s=*(x[1]+1);}
    main()
    {int a[2][3]={1,2,3,4,5,6},*p;
    p=(int*)malloc(sizeof(int));  
    fun(&p,a);
    printf("%d\n",*p);
    }
    程序的运行结果是(    )。

选项 A、6
B、2
C、5
D、3

答案C

解析 malloc(size)函数作用是在内存的动态存储区分配一个长度为size的连续空间,函数的返回值是新分配的存储区的首地址,将该地址赋值给p指针,然后取p指针的地址,调用fun函数。fun函数中对指向指针的指针s指向的内存单元赋值,其中x[1]表示二维数组x的第二行的行地址,x[1]+1表示二维数组x的第二行第二列的地址,所以fun函数的功能是将二维数组x的第二行第二列的值,即x[1][1]赋值给**s,*s为p,所以**s代表*p,x[1][1]与a[1][1]等价,因此答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/NOxp777K
0

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