int+a[3][2]={{6,5},{4,3},{2,1}},*p=a[1];则*(p+2)的值?
那么,p加2指向的是{2,1}这个一维数组的首地址,而*(p+2)则表示取该地址上的值,即1。因此,*(p+2)的值为1。需要注意的是,题目中的表达式“int+a[3][2]”是错误的,应该是“int a[3][2]”才是正确的语法。
...int a[3][2]={1,2,3,4,5,6}, (*p)[2]=a;表达式**(p+2)的值?_百度...
则p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即为5。
...int a[3][2]={10,20,30,40,50,60},(*p)[2];p=a;则*(*(p+2)+1...
(*(p+2)+1)对应数组元素a[2][1],因此值为:60。
C语言:定义int a[3][2]={1,2,3,4,5,6};,详解**(a+1)、*(a+1)[0...
它们的值都是3。因为a是指向有2个元素的一维数组的指针,那么——(a+1)——所以,a+1指向了从3开始的二维数组,*(a+1)就是元素3的指针,**(a+1)自然是3。(a+1)[0]——由于[]优先级高于*,所以被解释为*((a+1)[0]),参照1,(a+1)[0]就是元素3的指针,*(a+1)[0]就是元素...
...int a[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*p[0]+1)所代表...
【答案】:C 解析:本题中a为三维数组,其中a[0],a[1],a[2]分别代表它的三维(的首指针),p为一个一维指针数组,含有3个元素,每两行代码把数组的第二维的首指针赋值给指针数组的第一个值,所 以,* (p[0] +1)即取p[0]所指数组的第二个值,即为数组a的第二维的第二个值,即为a...
设说明为int a[3]={1,2}, *p=a; 则*p与*(p+2)的值分别是 。_百度知 ...
初始化时只初始了a[0]=1,a[1]=2,a[2]系统给初始为0 p就是a[0]=1 (p+2)=a[2]=0
int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\\n",a...
二维数组的首地址是二级指针,二级指针就是指针的指针,意思就是一个指针指向了另一个指针。假如:int **b , *a; b = &a; 所以*b中存放的是指针a指向的地址值, b就是a的地址值。所以这里的**a 和*a就是这个道理。这里*a就是第一行首地址的地址值 ...
int a[3][2]={1,2,3,4,5},*p[3];p[0]=a[1];则*(p[0]+1)代表的数组元素...
代表数组元素a[1][1]=4;把a[1]地址赋值给了指针p[0],则p[0]指向了a[3][2]的第二行a[1],所以*(p[0]+1)代表的是数组中的a[1][1]=4;下面是我上机实验的结果:
.已知有声明"int a[3][3]={0},*p1=a[1],(*p2)[3]=a;",以下表达式中与"a...
a[1]表示a[1]所在行的地址,此时a[1]相当于一维数组,其元素也就是 a[1][0] a[1][1] a[1][2] 三个元素的一维数组。你可以将a[1]看成一维数组b,则其元素也就是b[0] b[1] b[2]而 p1 = b 则p1[1] = b[1] = a[1][1] = 1 这也是A为什么正确的原因。至于c和d...
void main( ){ int a[2][3]={{1, 2, 3},{4, 5, 6}};
所以(*p)[3]=a其实就是把二维数组赋予(*p)[3],方便以后用p乱指。。。m=(*(*p)) *(*(*(p+1)+2));这个要注意的是中间的*是乘号。。。前面的(*(*p))就是取*p的值就是{1, 2, 3}里的1啊,而*(p+1)就是a[1]里{4, 5, 6}中4的地址,再+2就是6的地址了(一维数组地址...