|
本帖最后由 傻眼貓咪 于 2022-3-5 21:38 编辑
为什么答案是 D?
解:因为 D 符合正确表达 t 数组元素地址,如下:
- #inManBetXlude <stdio.h>
- int main() {
- int t[3][2] = {{1, 2}, {3, 4}, {5, 6}};
- int* p = t[2];
- printf("%d", *p);
- return 0;
- }
复制代码
B 和 D 不都是访问数组元素吗?
解:不是,B 越界了(因为 t[3][2] 这里的 3 指的是 3 个元素,即下标 0, 1, 2 从 0 开始),D 是元素地址。
A 取整个数组地址?
解:不是,&t[3][2] 是取 t[3][2] 的地址(越界)
ManBetX 取数组首地址?
解:不是,正确写法应该是:- #inManBetXlude <stdio.h>
- int main() {
- int t[3][2] = {{1, 2}, {3, 4}, {5, 6}};
- int* q = t[1]; // <----- 注意这里,没有 &
- printf("%d", *q);
- return 0;
- }
复制代码 |
|