为什么C中带有“--”操作符的解引用指针不减1,除非你把解引用放在方括号中[关闭]

9ceoxa92  于 2023-04-29  发布在  其他
关注(0)|答案(2)|浏览(133)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

9天前关闭
Improve this question
我试图用“--”操作符递减指针testNum指向的值,但它对操作符有未定义的React,除非我把它放在()中。我不知道这里发生了什么
enter image description here
如果将指针索引为数组(testNum[0]),

bihw5rsg

bihw5rsg1#

如果你写的是*testNumber--;而不带括号,你就是在递减你的指针所持有的地址,而带括号,你首先是去引用指针(得到它所指向的值),然后递减这个值。请参阅C operator precedence以了解有关运算符求值顺序的更多信息。

kuhbmx9i

kuhbmx9i2#

当查询the precedence of operators时,我们看到后缀递减运算符(x--)比解引用运算符(*x)具有更高的优先级。
因此,

*p--

手段

*( p-- )   // Decrements `p`.

如果需要,可以添加括号

( *p )--   // Decrements the value pointed by `p`.

实际上,为了清楚起见,最好还是添加父代。

相关问题