c 三目運算子功能增強

2022-08-19 15:15:10 字數 820 閱讀 8550

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 先計算...