有以下程序 #nclude #nelude 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(

admin2017-07-05  23

问题 有以下程序
#nclude
#nelude
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、5
B、2
C、6
D、3

答案A

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

最新回复(0)