gpt4 book ai didi

c++ - *buf++ = *buf + 10 - 解释

转载 作者:行者123 更新时间:2023-11-30 04:08:15 27 4
gpt4 key购买 nike

<分区>

示例代码

int arr[3] = { 0, 1 };
int* buf = arr;
*buf++ = *buf + 10;

最后一个表达式的结果是 buf[0] == 10。我教过它是 buf[0] == 11

我的一所大学写了一些与示例代码类似的东西,我教它的工作方式与实际不同。我想知道为什么它会这样工作。

我解决这个问题的方法是查看运算符优先级表。它指出后缀++ 优先于取消引用。因此我教过 operator= 左边的 buf 会指向第一个元素,但在 operator= 右边它会指向第一个元素已经递增并指向第二个元素。然而事实并非如此。

我的问题是,为什么会这样?最好是标准引语 :) 但是欢迎任何解释!

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