三目運算子在C和C 編譯器中的不同

2021-09-01 00:18:42 字數 825 閱讀 9015

#include using namespace std;

//在c語言中 表示式的結果 放在什麼地方 暫存器

//1

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

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

//2 如何做到的

//讓表示式返回乙個記憶體空間 ..記憶體首位址 指標

//在c語言中 如何 實現 c++的效果

//3 本質

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

int main()

在c語言中,三目運算子是不能直接當左值的,因為在c語言中,表示式返回的是乙個值(數),在數是不能當左值的,而在c++中,三目運算子是可以當左值的,因為在c++編譯器中,三目運算子返回的是變數本身(即記憶體空間),而不是乙個值,所以是可以當左值的。在c++中編譯器自動完成了對三目運算子的取位址命令,所以返回的是變數的本身。

注意:

1. c語言返回變數的值,而c++中返回的變數本身

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

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

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

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

*(a

三目運算子在C和C 編譯器中的不同

include using namespace std 在c語言中 表示式的結果 放在什麼地方 暫存器 1 在c語言中,表示式的返回值 是變數的值 在c 中,表示式返回的是變數的本身 2 如何做到的 讓表示式返回乙個記憶體空間 記憶體首位址 指標 在c語言中 如何 實現 c 的效果 3 本質 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 ...