int main()
int a =1;
int b = 2;
(a < b? a:b) = 3;
printf("a = %d, b = %d\n", a,b);
return 0;
上面這段**在c語言編譯器中無法通過,在c++編譯中可以通過
c語言中的三目運算子返回的是變數值,不能作為左值使用
c++中的三目運算子返回的就是變數本身,因此可以出現在任何地方
注意:三目運算子可能返回的值中如果有乙個常量,則不能作為左值使用。
int q = 1;
int p = 2;
(q編譯通過,在c++中三目運算子返回的是變數,在c語言中返回的是值,所以在c++中可以作為左值,在c語言中不可以
//(q;//編譯不通過,三目運算子可能的返回值中如果有乙個常量,則不能作為左值使用
printf("q = %d,p=%d\n",q,p);
學習筆記 C語言 三目運算子
1.n目運算子 像邏輯非 負號 這種只連線乙個資料的符號,稱為 單目運算子 比如 5 5。像算術運算子 關係運算子 邏輯運算子這種連線二個資料的負號,稱為 雙目運算子 比如6 7 8 5 5 6 4 0 以此類推,連線3個資料的運算子,應該稱為 三目運算子 2.三目運算子 c語言提供了唯一乙個三目運...
C 三目運算子 ?
三目運算子 是c 裡唯一乙個三元運算子。其表示式格式為 表示式1 表示式2 表示式3 執行步驟 1 計算表示式1的值 2 若表示式1的值為真 或非0 則只計算表示式2,將其結果作為整個表示式的值 若表示式1的值為假 或為0 則只計算表示式3,將其結果作為整個表示式的值。例,x a b?a b 先計算...
C 條件運算子(三目運算子)
在某些情況下,可以用條件運算子 來簡化if語句。是乙個三元運算子,其構成的表示式格式為 表示式1 表示式2 表示式3 條件運算子的執行流程示意圖如上圖所示,描述如下 1 計算表示式1的值 2 若表示式的值為真 或非0 則只計算表示式2,並將其結果作為整個表示式的值 反之,即表示式1的值為假 或為0 ...