[英]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.