gpt4 book ai didi

c - C中是否允许负数组索引?

转载 作者:太空狗 更新时间:2023-10-29 16:14:46 24 4
gpt4 key购买 nike

我刚刚读了一些代码,发现这个人正在使用 arr[-2] 来访问 arr 之前的第二个元素,就像这样:

|a|b|c|d|e|f|g|
^------------ arr[0]
^---------- arr[1]
^---------------- arr[-2]

这是允许的吗?

我知道 arr[x]*(arr + x) 相同。所以arr[-2]*(arr - 2),这看起来没问题。你怎么看?

最佳答案

没错。来自 C99 §6.5.2.1/2:

The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).

没有魔法。这是 1-1 的等价关系。与往常一样,在取消引用指针 (*) 时,您需要确保它指向有效地址。

关于c - C中是否允许负数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473675/

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