gpt4 book ai didi

c++ - 为什么带后缀运算符的解引用指针用括号表示,仍然可以得到之前解引用的值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:41 25 4
gpt4 key购买 nike

我不明白这里的优先顺序。鉴于:

*(p++)

这是我认为会发生的事情:

(p++)

然后

*p

为什么 p 的地址不先递增,然后取消引用,因为后缀在括号中?

*(p++)

为什么地址不递增然后取消引用因为括号

*p++ 看起来与*(p++) 不同,但它们是相同的。

最佳答案

*(p++)中,p的值被p++递增,但是p++的结果code>是自增前的值,*适用于自增前的值。括号是多余的——可以说是对语言不确定的人的标志。

如果你想取消引用增加的值,你需要预先增加:

*(++p)
*++p

请注意,如果您想增加 p 指向的内容,您可以使用:

(*p)++
++*p
++(*p)

最后两个是一样的,只是拼写不同。这三个中的第一个括号是必需的; *p++*(p++) 而不是 (*p)++

关于c++ - 为什么带后缀运算符的解引用指针用括号表示,仍然可以得到之前解引用的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27866368/

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