c語言三目運算表示式返回值為資料值,為右值,不能賦值。
int a = 10;int b = 20
;printf(
"ret:%d\n
", a > b ?a : b);
//思考乙個問題,(a > b ? a : b) 三目運算表示式返回的是什麼?
//(a > b ? a : b) = 100;
//返回的是右值
c++語言三目運算表示式返回值為變數本身(引用),為左值,可以賦值。
int a = 10;int b = 20
;printf(
"ret:%d\n
", a > b ?a : b);
//思考乙個問題,(a > b ? a : b) 三目運算表示式返回的是什麼?
cout
<< "b:"
<< b /返回的是左值,變數的引用
(a > b ? a : b) = 100;//
返回的是左值,變數的引用
cout << "b:"
<< b << endl;
[左值和右值概念]
在c++中可以放在賦值操作符左邊的是左值,可以放到賦值操作符右面的是右值。
有些變數即可以當左值,也可以當右值。
左值為lvalue,l代表location,表示記憶體可以定址,可以賦值。
右值為rvalue,r代表read,就是可以知道它的值。
比如:int temp = 10; temp在記憶體中有位址,10沒有,但是可以read到它的值。
C 條件運算子(三目運算子)
在某些情況下,可以用條件運算子 來簡化if語句。是乙個三元運算子,其構成的表示式格式為 表示式1 表示式2 表示式3 條件運算子的執行流程示意圖如上圖所示,描述如下 1 計算表示式1的值 2 若表示式的值為真 或非0 則只計算表示式2,並將其結果作為整個表示式的值 反之,即表示式1的值為假 或為0 ...
C 條件運算子(三目運算子)
在某些情況下,可以用條件運算子 來簡化if語句。基本格式 是乙個三元運算子,其構成的表示式格式為 表示式1 表示式2 表示式3 執行流程 條件運算子的執行流程示意圖如上圖所示,描述如下 1 計算表示式1的值 2 若表示式的值為真 或非0 則只計算表示式2,並將其結果作為整個表示式的值 反之,即表示式...
C 三目運算子 ?
三目運算子 是c 裡唯一乙個三元運算子。其表示式格式為 表示式1 表示式2 表示式3 執行步驟 1 計算表示式1的值 2 若表示式1的值為真 或非0 則只計算表示式2,將其結果作為整個表示式的值 若表示式1的值為假 或為0 則只計算表示式3,將其結果作為整個表示式的值。例,x a b?a b 先計算...