为您找到"
...int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为
"相关结果约100,000,000个
答案选B p = a;让a指向int a[2][2]的int a[][2];p++让p指向int[][2]的第二个地址,int a[1][2]的地址,所以**p的值是3.
(*p)[2]=a表示将p定义为一个指向含2个元素的一维数组的指针变量,那么二维数组就可以看作是一维数组a[3],其中每一个元素都是一个一维数组,a[1]={1,2},a[2]={3,4},a[3]={5,6};则p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即为5。(p+2...
为了更好的理解,我们定义一个int *q;q = p[0];这样 *(p[0] + 1)就等价于 *(q +1)了,由于q是int型的指针并指向的a[1]的第0个元素a[1][0], q+1就会指向a[1][0]的下一个元素了,也就是a[1][1].p[0]指向的是a[1][0]的地址,*(p[0]+1)自然指的是a[1][1]应...
那么,p加2指向的是{2,1}这个一维数组的首地址,而*(p+2)则表示取该地址上的值,即1。因此,*(p+2)的值为1。需要注意的是,题目中的表达式“int+a[3][2]”是错误的,应该是“int a[3][2]”才是正确的语法。根据题目可知,指针p指向a[1],即数组中第2行的首元素,也就是4。(p+...
二维数组的首地址是二级指针,二级指针就是指针的指针,意思就是一个指针指向了另一个指针。假如:int **b , *a; b = &a; 所以*b中存放的是指针a指向的地址值, b就是a的地址值。所以这里的**a 和*a就是这个道理。这里*a就是第一行首地址的地址值 二维...
【答案】:B 本题考查指向数组的指针,本题中指针变量P指向数组a,那么*P的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即P+8指向的是数组元素值为9,所以数值为9的表达式是*(P+8)。
【答案】:2 解析:矩阵a中存了1、2、3、4,C/C++数组序号从0开始,所以a[3]表示4,指针p表示4所在的位置,则指针--p表示4所在位置的前两位,即2所在的位置,答案为2。
3, B a = a + 7; 因有分号所以是语句,不是表达式。a=7+b+c,a++ 是逗号表达式。4,C int a[2][3]={{1},{2},{3,4}}; 少了一维, a[3][3]就对了 6,B int a=b=0; b没定义,不能用来定义a 12,C 这是函数指针的定义方式 13,A 这个简单,不应该出错 15,A fopen...
因为*p=a,*p=a=a[0]=1.这里是该地址的数据、p为指针的地址。p = a = 2000.因为一个int是两字节,p+1=a+1=2002 而*(p+2)= a[2]=3.
答案是 C) p+=2,*p++。关于P+=2指向的是数组的第二个元素,是因为p++操作在p+=2操作之后,它将指针偏移2个元素,也就是p最终指向数组a的第三个元素,即a[2],而*p++表示取出p所指向的元素并且p++,因此最终得到的结果是a[2]=3。单独的p指向的是数组a的第一个元素,即a[0]=1。