我爱橙 发表于 2022-3-5 20:11:05

NO.90 数组地址

本帖最后由 我爱橙 于 2022-3-5 20:11 编辑

Q:若有以下定义int t;能正确表达t数组元素地址的是
A.&t
B.t
C.&t
D.t

为什么答案是D?
B和D不都是访问数组元素吗?
A取整个数组地址?
C取数组首地址?

傻眼貓咪 发表于 2022-3-5 21:35:41

本帖最后由 傻眼貓咪 于 2022-3-5 21:38 编辑

为什么答案是 D?
解:因为 D 符合正确表达 t 数组元素地址,如下:
#include <stdio.h>

int main() {
        int t = {{1, 2}, {3, 4}, {5, 6}};
        int* p = t;
        printf("%d", *p);
        return 0;
}5
B 和 D 不都是访问数组元素吗?
解:不是,B 越界了(因为 t 这里的 3 指的是 3 个元素,即下标 0, 1, 2 从 0 开始),D 是元素地址。

A 取整个数组地址?
解:不是,&t 是取 t 的地址(越界)

C 取数组首地址?
解:不是,正确写法应该是:#include <stdio.h>

int main() {
        int t = {{1, 2}, {3, 4}, {5, 6}};
        int* q = t; // <----- 注意这里,没有 &
        printf("%d", *q);
        return 0;
}3
页: [1]
查看完整版本: NO.90 数组地址