簡體   English   中英

優先級問題和C中的++和*一元運算符

[英]Issue with precedence and ++ and * unary operators in C

我的問題不長,但對我來說這很令人費解。 我是那些(我認為理所當然)想要了解他們所學語言的每一條規則的人之一。 我想知道為什么語言會做它的功能。

那么,為什么++*i增加值*i ,而不是i的指針? preincrement運算符的優先級高於間接運算符。 這似乎是一個常識性的事情,但同樣,我必須確切知道為什么。 如果可以,請提供參考。

它無法解析為*(++i) ,可以嗎?

順便說一句, *和前綴++具有相同的優先級和從右到左的關聯性。

Prefix ++與unary *具有相同的優先級,而postfix ++ hsa優先於unary * operator。
++ *i情況下,編譯器將其解釋為

++ (*i);  

這意味着,取消引用i ,使用它,在不改變指針值的情況下遞增解除引用的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM