#include <stdio.h> int main() { int a[3][2] = { (0,1),(2,3),(4,5) }; int* p; p = a[0]; printf("%d\n", p[0]); }
时间: 2024-04-13 20:30:18 浏览: 100
你的代码有一个小错误。在初始化二维数组 `a` 的时候,你使用了逗号操作符 `(0,1)`、`(2,3)` 和 `(4,5)`,但是这并不会产生你期望的结果。逗号操作符会返回它的最后一个操作数的值,所以实际上 `a[3][2]` 中的元素值都是 `5`。
如果你想在初始化二维数组时使用不同的值,你可以这样写:
```c
int a[3][2] = { {0, 1}, {2, 3}, {4, 5} };
```
这样每个小括号内的数值会正确地初始化二维数组。
另外,在将 `a[0]` 赋值给指针 `p` 后,你可以通过 `p` 访问数组元素。所以 `p[0]` 将返回 `a[0][0]` 的值,即 `0`。
修正后的代码如下:
```c
#include <stdio.h>
int main()
{
int a[3][2] = { {0, 1}, {2, 3}, {4, 5} };
int* p;
p = a[0];
printf("%d\n", p[0]);
return 0;
}
```
这段代码会输出 `0`。
阅读全文