int array[][4] = { -2,2,27,5,16,20,23,36,41,55,67,38 }; int (*point)[4] = array; point = point + 2; cout << *(*point + 2);
时间: 2023-09-19 15:08:12 浏览: 56
这段代码的输出结果为23。
首先,定义了一个二维数组array,其中包含了3行4列的整数。然后定义了一个指向包含4个整数的一维数组的指针point,指向数组array的第一行。
接着,执行了point = point + 2,将指针point移动了两个一维数组的长度,即指向了数组array的第三行。
最后,输出了*(*point + 2)的值,即第三行第三列的元素,即23。注意,*point指向数组array的第三行,因此*(*point + 2)等价于array[2][2]。
相关问题
int array[][4]={-2,2,27,5,16,20,23,36,41,55,67,38};(point)[4]=array;point=point+2;cout<<*(*point+2);
这段代码有一个语法错误,应该将 `point` 定义为指向二维数组的指针,即 `int (*point)[4];`,而不是 `(point)[4]`。同时,变量名 `point` 前面的 `*` 也应该去掉。
修改后的代码如下:
```cpp
int array[][4] = {-2, 2, 27, 5, 16, 20, 23, 36, 41, 55, 67, 38};
int (*point)[4] = array;
point = point + 2;
cout << *(*point + 2);
```
这段代码的输出结果是 23,解释同上一题的答案解析。
int array[][4]={-2,2,27,5,16,20,23,36,41,55,67,38};(*point)[4]=array;point=point+2;cout<<*(*point+2);
这段代码的输出结果是什么?
答案是:23。
首先,`int array[][4]` 声明了一个 3 行 4 列的二维数组,并初始化了其元素值。
然后,`(*point)[4]=array;` 定义了一个指向二维数组的指针 `point`,并将其指向了 `array` 数组的首地址。
接着,`point=point+2;` 将指针 `point` 向后移动了 2 个二维数组的长度,即 2 x 4 x sizeof(int)。此时,`point` 指向了数组中第三行的首地址。
最后,`*(*point+2)` 表示先将指针 `point` 指向的数组中第三行的首地址加上 2,即指向了第三行的第三个元素,然后再取出该元素的值,即 23。因此,输出结果为 23。