C語言中三目運算子是什麼,C語言 三目運算子

時間 2021-10-17 04:53:59

1樓:墨汁諾

選擇運算,就是a:b?c那個。

三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:

其求值規則為:如果表示式1的值為真,則以表示式2的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。 條件表示式通常用於賦值語句之中。

2樓:尋涵衍歷氣

就是“?”和“:”。

這2個符號中有3個點,就叫3目。。。。用法舉例“你比他帥?你:

他”如果問號前是真的,那麼輸出的就是冒號前的,即“你”,如果你沒他帥,則輸出冒號後面的即“他”。這是相當於if

else--

3樓:單語絲閔運

三目運算子為a?b:c

即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:

表示式1?

表示式2:

表示式3

其求值規則為:如果表示式1的值為真,則以表示式2的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。

條件表示式通常用於賦值語句之中。

例如條件語句:

if(a>b)

max=a;

else

max=b;

可用條件表示式寫為

max=(a>b)?a:b;

執行該語句的語義是:如a>b為真,則把a賦予max,否則把b賦予max。

使用條件表示式時,還應注意以下幾點:

1.條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。因此

max=(a>b)?a:b可以去掉括號而寫為max=a>b?a:b

2.條件運算子?和:是一對運算子,不能分開單獨使用。

3.條件運算子的結合方向是自右至左。

例如:a>b?a:c>d?c:d應理解為

a>b?a:(c>d?c:d)

這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條件表示式。

void

main()

用條件表示式對上例重新程式設計,輸出兩個數中的大數。

c語言中三目運算子是什麼?

4樓:匿名使用者

三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:

表示式1? 表示式2: 表示式3

其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。 條件表示式通常用於賦值語句之中。

例如條件語句:

if(a>b) max=a;

else max=b;

可用條件表示式寫為 max=(a>b)?a:b; 執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。

使用條件表示式時,還應注意以下幾點:

1. 條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。因此 max=(a>b)?a:b可以去掉括號而寫為 max=a>b?a:b

2. 條件運算子?和:是一對運算子,不能分開單獨使用。

3. 條件運算子的結合方向是自右至左。

例如:a>b?a:c>d?c:d應理解為

a>b?a:(c>d?c:d) 這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條

件表示式。

void main()

用條件表示式對上例重新程式設計,輸出兩個數中的大數。

5樓:匿名使用者

表示式1? 表示式2: 表示式3

這是語法格式 打個比方if(a>1) b=1;else b=2;這是一個很簡單的判斷 如果用三目運算子 就可以寫成b=(a>1)?1:2;可以理解為 a>1 是個判斷條件 如果為真 b就等於1 不為真 就等於2比上面的**簡單 提高執行效率

6樓:匿名使用者

選擇運算,就是a:b?c那個。

c語言 三目運算子

7樓:匿名使用者

不帶括號,實際上是這樣的效果(","優先順序略低,一般都是最後執行咯)。 temp<=n ? (temp *= 2,m++):

(temp = (temp-n)*2-1),m++; 也就是說,不帶括號,你tempn是沒問題的。帶括號,自己比較好理解。然後,你如果想寫的高大上,簡單點又正確,可以只加後面一個括號。

即下面的方式。 temp<=n ? temp *=2,m++:

(temp=(temp-n)*2-1,m++) 個人是非常不建議這麼些,**給別人看挺麻煩。

8樓:

)前面的逗號先去掉

最後面)後的分號也去掉

c語言中唯一的一個三目運算子是什麼

9樓:匿名使用者

?:是c語言唯一的一個三目運算子,a?b:c相當於if...else語句

c語言,三目運算子

10樓:匿名使用者

char buff;

int res = (buff >= '0' && buff <= '9') ? (buff - '0') : (buff - 'a' + 10);

就這樣。。。。

11樓:兔子和小強

#include

isdigit(ch)? ch-'0': ch-'a'+10

12樓:

比如輸入的字元存入a中 三目應該是這樣

(a>='a'&&a<='e')?a-'a'+10:a-'0'; //小寫字母表示

c語言?:三目運算子用法問題。

13樓:

不帶括號,實際上是這樣的效果(","優先順序略低,一般都是最後執行咯)。

temp<=n ? (temp *= 2,m++):(temp = (temp-n)*2-1),m++;

也就是說,不帶括號,你temp<=n成立時候,m++總是會執行兩次,當然對於temp>n是沒問題的。

帶括號,自己比較好理解。

然後,你如果想寫的高大上,簡單點又正確,可以只加後面一個括號。即下面的方式。

temp<=n ? temp *=2,m++:(temp=(temp-n)*2-1,m++)

個人是非常不建議這麼些,**給別人看挺麻煩。

14樓:匿名使用者

三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:

表示式1? 表示式2: 表示式3

其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。 條件表示式通常用於賦值語句之中。

例如條件語句:

if(a>b) max=a;

else max=b;

可用條件表示式寫為 max=(a>b)?a:b; 執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。

使用條件表示式時,還應注意以下幾點:

1. 條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。因此 max=(a>b)?a:b可以去掉括號而寫為 max=a>b?a:b

2. 條件運算子?和:是一對運算子,不能分開單獨使用。

3. 條件運算子的結合方向是自右至左。

例如:a>b?a:c>d?c:d應理解為

a>b?a:(c>d?c:d) 這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條

件表示式。

void main(){

int a,b,max;

printf("\n input two numbers: ");

scanf("%d%d",&a,&b);

printf("max=%d",a>b?a:b);

15樓:匿名使用者

三目運算: 條件?值1:值2,是根據條件的值分別值1或值2

對於本題就是依據你的取值,分別取(temp *= 2, m++) 和(temp = (temp - n)*2-1, m++)

若把?:中:前後的兩個()去掉,會出現錯誤!

16樓:匿名使用者

運算子是有運算順序的。

比如你上面括號裡面的*運算子優先順序高於=,++也高於三目運算子。推薦你看一下運算子優先順序。

就這個程式而言,主要問題是,逗號運算子優先順序比三目運算優先順序還低,去掉括號後,造成先做了三目運算,後做逗號運算。

希望這個回答對你有幫助。

17樓:8棒棒鼠

運算是分級別的,人看不懂,電腦也就會看錯

18樓:煙禎鄂雨

表示式1?表示式2

:表示式3

這個三目運算子的作用是:如果表示式1成立,則取表示式2的值,否則取表示式3的值

上面的式子等價於:

a=3,b=4;

(a>b)?(

(b>=2)?1:2):(

(a>b)?2:1

);由於a>b不成立,所以執行

(a>b)?2:1;

由於a>b不成立,所以取1

c語言算術運算子優先順序,c語言中運算子有哪幾種,優先順序順序是怎樣

我對樓上都很無語,第二幅圖對你們妹啊?運算所需變數為乙個的運算子叫單目運算子,例如 運算所需變數為兩個的運算子叫做雙目運算子,例如 都是單目運算子。第一幅圖印刷錯誤,第二幅圖是對的。是運算級別是最高的,沒有要求運算物件的個數 次於圓括弧運算子,屬於單目運算子。另外與 同級別的還有 指標指向結構體成員...

C語言符合賦值運算子,C語言賦值運算子的結合方向是自右向左嗎?

gta小雞 c a b c 2是錯誤的表示式,賦值運算子的左值必須是可解析的變數表示式,而c a不是乙個合法的左值。c語言賦值運算子的結合方向是自右向左嗎? 賦值運算bai符是自右向左結合的。du以如下 為例zhi int a 1,b 2,c 3 a b c printf d,d,d n a,b,c...

C語言運算,C語言 運算子 是怎麼運算的

詳細的給你解釋一下,手打的哦 運算子的大概的優先順序 由高到低排列,分號隔開 非 算數運算子 關係運算子 與 或 賦值運算子 這些事大概常用的,當處在同乙個運算級別的時候,就從左到右計算,當然所有的運算子中,級別的最高的就是括號,有括號就要先計算括號。下面 我們來看這道題 a 前減量操作 a減1之後...