元小白(猿小白)高階日記 十二(歧義表示式)

2021-09-17 20:35:56 字數 1050 閱讀 1224

一些問題表示式

1、ab+cd+e*f

在執行**時, * 的優先順序高於 + 的優先順序,所以先算 * 法,但優先順序不能保證的是第三個 * 法早於第乙個 + 執行。

有兩種順序執行:

ⅰ、ab , cd , ab+cd , ef , ab+cd+ef

ⅱ、ab , cd , ef , ab+cd , ab+cd+ef

#includeint main()

vs2013輸出結果是ret=44

2、c + --c

在執行**時, 自減-- 的優先順序高於 + 的優先順序,所以先算自減 --法,但優先順序不能保證的是 + 右邊的 c 是自減之後的 c 還是自減之前的 c,這裡有歧義。

#includeint main()

vs2013輸出結果是ret=18

3、非法表示i-- - --i * (i=-3) * i++ + i++;

#includeint main()

vs2013輸出結果是22

4、 fun() - fun() * fun()

#includeint fun()

int main()

vs2013輸出結果是answer=-5

以上這段**的結果雖然是-5,但他的問題在於我們只知道先算乘法,再算減法,但我們不知道函式呼叫的順序。

5、(++i)+(++i)+(++i)

#includeint main()

vs2013輸出結果是ret=12 i=4

據測在linux環境下輸出結果為ret=10 i=4

他的問題在於不能確定第乙個 + 與第三個 ++ 的先後順序,不能確定,執行第乙個 + 的時候,第三個 ++ 是否執行

元小白(猿小白)高階日記 三(for)

3 for for 表示式1 表示式2 表示式3 迴圈語句 表示式1 初始化部分,用於初始化變數 表示式2 條件判斷部分,用於判斷迴圈的終止 表示式3 調整部分,用於迴圈條件的調整例如 用for輸出0到10 define crt secure no warnings 1 include includ...

元小白(猿小白)高階日記 五(函式)

自定義函式 ret type fun name paral,ret type 返回值型別 fun name 函式名 paral 函式引數舉例 1 求兩個數中較大的數 define crt secure no warnings 1 include int max int x,int y else re...

元小白(猿小白)高階日記 七(陣列)

陣列是一類相同元素的集合。一 一維陣列 1 陣列的建立 type t arr name const n type t 是指數組的元素型別 const n 是乙個常量表示式,用來指定陣列的大小,即元素個數 例如 int arr1 10 char arr2 30 float arr3 33 2 陣列的初...