数组定义为"int a[4][5];",下列哪个是不正确的() A.*a B.*(*(a+2...
发布网友
发布时间:2024-10-21 17:19
我来回答
共3个回答
热心网友
时间:2024-10-21 20:40
D是错的
是语法错误
++操作是对值操作,简单理解为变量,指针可以做++操作,数组是不可以的
A *a 之后得到的值是一个地址,这个值跟就是数组a的首地址,不过意义不一样,a相当于一个二级指针,指向一个4行5列的二维数组,而*a是一个一级指针,指向一个有5个元素的数组首地址
B 这是二维数组的另外一种元素索引方式,不过多解释
C 取 第2行第3列元素首地址
D语法有错误
热心网友
时间:2024-10-21 20:41
问题是不是问反啦?只有C是正确的吧?
热心网友
时间:2024-10-21 20:37
a是对的, a[][]是一个二维数组, 本身 变量名 a 就可以直接当成指针来用
b也是对的。 a 是指向存储单元的起始地址, a+2后 *(a+2) 为指向第三行的第一个数据的指针 加上一个 *, *(*(a+2)就相当于 第三行第一个数据的值
c 也是对的, a[2][3] 为第三行第四列的数据,是int类型、 加上取地址符号& 就得到了第三行第四列的数据的地址。
----自己的理解, 反正我也是菜鸟