我的問題不長,但它令我感到困惑。我是那些(我認爲應該如此)想知道他們所學語言的每一條規則的人之一。我想知道爲什麼這個語言會做它的功能。問題與優先級和++和*一元運算符在C
那麼,爲什麼++*i
的值增加了*i
,而不是i
的指針呢?預增加運算符比間接運算符具有更高的優先級。這似乎是一個常識性的事情,但我必須再次確切地知道爲什麼。如果可以,請提供參考。
我的問題不長,但它令我感到困惑。我是那些(我認爲應該如此)想知道他們所學語言的每一條規則的人之一。我想知道爲什麼這個語言會做它的功能。問題與優先級和++和*一元運算符在C
那麼,爲什麼++*i
的值增加了*i
,而不是i
的指針呢?預增加運算符比間接運算符具有更高的優先級。這似乎是一個常識性的事情,但我必須再次確切地知道爲什麼。如果可以,請提供參考。
前綴++
具有相同的優先級一元*
而後綴++
HSA優先級比一元*
操作者更高。
在++ *i
編譯器的情況下,把它解釋爲
++ (*i);
也就是說,解除引用i
,使用它,遞增解除引用的值,而不改變指針的值。
它不能被解析爲*(++i)
,可以嗎?
順便說一句,*
和前綴++
有相同的優先級,並從右到左結合。
這很有道理。我剛剛證實我的手冊有一個錯字,它說++比*高。 – Subsentient
Postfix ++(後增)較高,前綴++(前增)不是。 – Inspired
C手冊經常指出postfix和prefix運算符具有相同的優先級,但關聯性使得它幾乎與誰是對的無關,看起來似乎。 – Subsentient