gpt4 book ai didi

c - 理解这个 C 数组语法 - 3[arr]

转载 作者:行者123 更新时间:2023-11-30 20:21:44 26 4
gpt4 key购买 nike

我正在阅读 Head First C,到目前为止进展顺利,但我在这个示例中遇到了麻烦 -

int doses[] = {1, 3, 2, 1000};
printf("Issue dose %i", 3[doses]);

结果 =“发出剂量 1000”

我知道它的作用,它访问剂量数组的索引 3。从技术上讲,我的理解是,它将三个整数的大小添加到数组中第一个元素(剂量变量)的指针地址

这本书解释说它之所以有效是因为

doses[3] == *(doses + 3) == *(3 + doses) == 3[doses]

我一直坚持到 *(3 + 剂量) == 3[剂量] 之间的最后一次跳跃。鉴于剂量[3]对我来说很容易理解,也许我没有正确理解[]的意义?

最佳答案

C 标准定义 [] 运算符如下:

doses[3] == *(doses + 3)

Therefore doses[3] will evaluate to:

*(doses + 3)
and 3[doses] will evaluate to:

*(3 + doses)

希望对您有帮助;)

关于c - 理解这个 C 数组语法 - 3[arr],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654292/

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