设有变量定义int a 21,2,3,

2021-02-25 08:41:09 字数 1855 阅读 1586

1楼:匿名用户

(*p)[2]=a表示将抄p定义为一个袭

指向含2个元素的一维数组的指针变量,那么二维数组就可以看作是一维数组a[3],其中每一个元素都是一个一维数组,a[1]=,a[2]=,a[3]=;

则p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即为5。

2楼:匿名用户

*(p+2)即a[2],**(p+2)即*(*(p+2)+0)即a[2][0],所以它的值是5

设有变量定义 int a[3][2]={1,2,3,4,5,6}, (*p)[2]=a;表达式**(p+2)=*p[2]的值?

3楼:潘良段干宛菡

(*p)[2]=a表示来

将p定义为一个指向自

含2个元素的一维数组的指针变量,那么二维数组就可以看作是一维数组a[3],其中每一个元素都是一个一维数组,a[1]=,a[2]=,a[3]=;

则p+2就指向了a[3],*(p+2)是a[3]的首地址,**(p+2)就是a[3]的首元素,即为5。

4楼:匿名用户

**(p+2),*p[2]这两个表达式是等价的,当然,**(p+2)=*p[2]是一个赋值表达式,最终的值还是a[2][0],即5

5楼:匿名用户

作用是:a[2][0]被 a[0][2]也就是a[1][0]赋值

6楼:匿名用户

**(p+2)的值为5

int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a); printf("%d,%d",*a,*a[0]); } 50

7楼:匿名用户

二维数组

可以当成每个

元素都是一个数组的一维数组

比如a[3][2] 可以当作一个一维数组a[3], 但是a[3]的每个元素回都是答一个一维数组..

那么就好理解了 *a是a[0],但是a[0]自身是一个一维数组,并不是一个数

所以*a[0], 或者**a 才是这个一维数组的首个元素的值

8楼:匿名用户

二维数组的首地址是

来二级自指针,二级指针就是指bai针的指针,du意思就是一个指针指向了另一

zhi个指针。

假如:int **b , *a; b = &a; 所以dao*b中存放的是指针a指向的地址值, b就是a的地址值。

所以这里的**a 和*a就是这个道理。这里*a就是第一行首地址的地址值

9楼:哥德**的忧郁

a是一个二维数组的首地抄址,*a是对a相当于进行了一次降维,所以*a是一维数组的首地址,也就是a[0],这么说吧你可以把a[3][2]看成这样子, },所以a指向的是这一整个数组,*a指向才是数组里的一个元素,所以再对*a进行*运算,也就是**a,才会是第一元素的值,如果不懂欢迎追问哦。

10楼:育知同创教育

二维数组不应该是**a才能取到1吗?

11楼:王子易

你这什么,题目看不懂

设有定义:int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为()

12楼:匿名用户

答案选b

p = a;让a指向int a[2][2]的int a[2];p++让p指向int[2]的第二个地址,int a[1][2]的地址,所以**p的值是3.

若有定义int a 51,2,3,4,5则数组元素

1楼 ta是猪 数组是从0开始的,所以a 3 实际是它的第四个元素,所以答案是4 有定义inta 5 1 2 3 4 5 ,则a 3 的值 2楼 郑原俊 a 3 的值是4,就是说定义的数组是从a 0 开始的,就是说这个数组是没有a 5 的,最大就是a 4 5 最小是a 0 1 3楼 匿名用户 a 0...

c语言里面定义int型的变量后面打个小括号不是

1楼 int x 5 就是int x 5 的意思。其实最早的c编译器并不支持这种写法,后来c 兼容c的编译器就都支持这种写法了。 你拒绝吧,我实在看不出int x 5 这种写法还有别的什么意思, 不完整 我也无能为力了。如果认证员还知道int x 5 有别的意思,告诉我不就让我进步了吗? 2楼 匿名...

在c中定义有int类型成员A,B的类Test

1楼 然后去远足 public class test 2楼 最大功能 实验课不会做而已。。。不过这么简单的题。。。 c 怎样定义一个int类型的int型变量 3楼 自由食品 using intalias system int32 intalias a 4楼 倾城一泪 int a a 现在就是一个in...