C 中三目運算子做左值

2021-09-10 12:00:22 字數 646 閱讀 1519

c語言返回變數的值,c++語言是返回變數本身

c語言中的三目運算子返回的是變數值,不能做為左值使用

c++中的三目運算子可直接返回變數本身,因此可以出現在程式的任何地方

三目運算子可能返回的值中如果有乙個是常量值,則不能作為左值使用

(a < b ? 1 : b )= 30;

c語言如何支援類似c++的特性呢?

====>當左值的條件:要有記憶體空間;c++編譯器幫助程式設計師取了乙個位址而已

思考:如何讓c中的三目運算子當左值呢?

#include using namespace std;

/* 在c語言中,表示式的結果放在暫存器中

在c語言中, 表示式的返回值,是變數的值

在c++中, 表示式返回的是變數的本身

讓表示式返回乙個記憶體空間,記憶體首位址;在c語言中如何實現c++的效果?

c++編譯器 幫我們程式設計師完成了 取位址的工作

*/void test01()

int main(int argc, const char *ar**)

測試結果:

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