gpt4 book ai didi

c - *x 与 x[0] 不同,当 x 是指向未定义维度数组的指针时

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:49 25 4
gpt4 key购买 nike

<分区>

我一直认为a[0] 等同于*a,但后来我遇到了这段代码:

int arr[] = {1, 2, 3};
int (* a)[] = &arr;
printf("%d", (*a)[2]); // compiles
printf("%d", a[0][2]); // errors out

有一个指向未指定大小的数组的指针。第一个表达式编译得很好,但第二个表达式的结果是

test.c:8:21: error: invalid use of array with unspecified bounds
printf("%d", a[0][2]);
^

Clang 的错误是

error: subscript of pointer to incomplete type 'int []'

来自 MSVC v19.10

error C2036: 'int (*)[0]': unknown size

为什么 a[0] 不等同于 *a

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com