下面的內容為本人無聊時自我猜想,不保正內容的正確性,如有問題,請見諒。
0、空格可以告訴編譯器名顯邏輯
1、注意向後不能連續有三個以上(---)(+++),可以用空格告訴編譯器明顯的邏輯。
如:不能有a++++b
可以有a+++ +b
2、注意向前不能有連續兩個以上(--)(++),,可以用空格告訴編譯器明顯的邏輯。
如:不能有a++ +++b
可以有a+++ ++b或a++ + ++b
3、從左向右一次解釋,所以
不能有交叉體
如a++++b
會分析為(a++)(++b),很顯然這兩者之間沒有運算子,所以會出錯。
而a++ + +b,會分析為(a++) + (+b)
如a+++ ++b++不正確
會解釋為
(a++)+ [(++b)]++
4、當然與其它符號混合可以超過定數以上
5、取出結合體
a+++b+++ +c
a(++)+b(++)+ +c
5、取出最高優先順序的" 算數表示式",在"算數表示式"中,執行算數表示式前增或後增
a=4b=2
c=3(a > ++b)|| (a > ++b)
結果為b=3
6、精度是按步提公升
如a=800
b=900
c=789
d=908.0
a*b*c+d
會出錯前三者在運算的時候,精度為int,而做」+「時,對會為double
每算一步進行一次精度檢查與提公升
運算子 優先順序 結合性
語言的運算子可分為以下幾類 1.算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2.關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3.邏輯運算子 用於邏輯運算。包括與 或 非 三種。4.位操作運算子 參與運算的量,按二進位...
運算子優先順序及結合順序隨筆
運算子優先順序及結合順序隨筆 最近在網上看到一段開源 中有乙個關於鍊錶操作的 其中有一行如下 pnode next 看到這段 我一時想不起這些運算子的結合順序是什麼樣子了,於是開始查詢資料並寫了下面的測試程式 1 test operator priority 2 typedef struct 3 s...
運算子 及 運算子優先順序
數 算符 7個 1 為求餘運算子 例如 3 2 1 8 3 2 2 和 為自加1和自減1運算子。3 i 和 i都是加1運算。如 i 和 i 等於 i i 1 i i i i的意義和i i完全不一樣,可以這樣 理解,加 號在前面的先進行加1運算再賦值,加號在 後面 的 先進行賦 值在加1運算。如int...