关于指针的C语言题目

2025-02-24 08:08:09
推荐回答(5个)
回答1:

首先那个人解释的是对的. 类似于 int x[3][4] 这样的, 习惯于称之二维数组, 但这个声明实际上的含义是 声明了一个由3个元素组成的一维数组 x[3], 每一个元素的类型是由4个int类型组成的一维数组.也就是说声明了 x[0] x[1] x[2] 这3个一维数组, 每个一维数组都含有4个int类型.
A.数组名表示了数组的首地址, 也就是与数组第一个元素的地址相同, 对这个数组名进行 +1, 就是向后移动指向数组第二个元素. 所以 x + 1 指向的是 x[1] 这个元素. 因为 x[1] 这个元素本身也是一个一维数组, 所以其值 *(x +1)是那个一维数组的首地址, 对这个地址再进行+1操作的话,就是对x[1]指向的那4个int组成的数组首地址进行+1操作, 然后 *(x + 1) + 1 就指向了这个一维数组的第二个元素的地址, 再对其取值, * (*(x+1) + 1) 就取到的是 x[1][1].
B. 很直观。
C. x+1 是 x[1] 的地址, 对其取值 *(x+1) 就是 x[1]指向的一维数组的首地址, 所以对这个地址再取值,取到的就是 x[1][0]
D.同样 , x[1]是4个int组成的一维数组的首地址, +1取到这4个元素的第二个元素的地址, 再取值 *(x[1] +1) 即是x[1][1]的值.

回答2:

解释是对的!

*(*(x+1))是指的第二行的0元素!第一个元素 x[1][1]是指的第二行第二个元素!you know! you should know!
所以C错了

回答3:

C,
A和C一样的格式,肯定有一个错,C表示a[1][0]

回答4:

你要是纯从做题角度判断 就是c啦,应为他就一个1,哈哈。要是从原理解释,楼上的dubainiwo已经把最基本的解释说了。

回答5:

答案 选 c
int (*p)[4] 他数一个数组指针