gpt4 book ai didi

c++ - 为什么我不能做 *value++;将该内存位置的值加一?

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

我知道要让它发挥作用,它需要

void increment(int *value)
{
(*value)++;
}

这是因为优先级的工作方式需要括号(如果我错了请纠正我)。但是当我执行以下操作时,为什么没有发生编译错误?该值未发生变化,这是意料之中的,因为没有括号,但这究竟发生了什么变化?

void increment(int *value)
{
*value++;
}

最佳答案

value 是一个指向整数的指针。指针算法的规则是说,如果你做一个像value++这样的操作,那么之后它将指向value + sizeof(int)(以字节为单位)。

这里发生的事情是您将取消引用 value 以获得一些您刚刚丢弃的右值,然后递增 value(不是它指向的东西,而不是指针本身)。

关于c++ - 为什么我不能做 *value++;将该内存位置的值加一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350483/

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