gpt4 book ai didi

c++ - 指针上的算术是关联的吗?

转载 作者:可可西里 更新时间:2023-11-01 18:26:48 26 4
gpt4 key购买 nike

如果我说,

int a[] = {1, 2, 3, 4, 5};
int *p = a;

现在,如果我写 p + 1 + 2 会和 ((p + 1) + 2) 一样吗?任何证明这是错误的标准引用?

最佳答案

仅当您不超出范围时。例如,在这个:

int a[] = {1, 2, 3, 4, 5};
int *p = (a + 10) - 9;
int *q = a + (10 - 9);

p 的赋值会调用未定义的行为,而对 q 的赋值则不会。

不过,只要您保持在范围内,您就会期望关联性保持不变。

顺便说一句,请注意,在您的问题中,根据定义,您给出的两件事是相同的,因为加法(好吧,范围内加法)是左结合的。也就是说,x + y + z == (x + y) + z,而不是 x + (y + z)

关于c++ - 指针上的算术是关联的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404598/

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