1樓:蓉雪球
?:這個是三目運算子。
這個是條件表示式,表示如果a為真,則表示式值為b,如果a為假,則表示式值為c
條件表示式具體說明如下
條件語句:
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又是一個條件表示式。
k
-4<3正確就是k=4 這個沒有答案 k=-4 2樓:偉少love靜靜 條件運算子是惟一有3個運算元的運算子,所以有時又稱為三元運算子。對於條件表示式b?x:y,先計算條件b,然後進行判斷。如果b的值為true,計算 x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表示式從不會既計算x,又計算y。條件運算子是向右結合的,也就是說,從右向左 分組計算。例如,a?b:c?d:e將按a?b:(c?d:e)執行。 你這個沒有答案啊,應該是k=4吧,結果為a 3樓:匿名使用者 你可以換成如下方式理解: if (k
結果為k else if(c
結果為c else 結果為a。 這樣就很明白了吧。 c語言?:三目運算子用法問題。 4樓: 不帶括號,實際上是這樣的效果(","優先順序略低,一般都是最後執行咯)。 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++) 個人是非常不建議這麼些,**給別人看挺麻煩。 5樓:匿名使用者 三目運算子為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); 6樓:匿名使用者 三目運算: 條件?值1:值2,是根據條件的值分別值1或值2 對於本題就是依據你的取值,分別取(temp *= 2, m++) 和(temp = (temp - n)*2-1, m++) 若把?:中:前後的兩個()去掉,會出現錯誤! 7樓:匿名使用者 運算子是有運算順序的。 比如你上面括號裡面的*運算子優先順序高於=,++也高於三目運算子。推薦你看一下運算子優先順序。 就這個程式而言,主要問題是,逗號運算子優先順序比三目運算優先順序還低,去掉括號後,造成先做了三目運算,後做逗號運算。 希望這個回答對你有幫助。 8樓:8棒棒鼠 運算是分級別的,人看不懂,電腦也就會看錯 9樓:煙禎鄂雨 表示式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語言~利用條件運算子的巢狀來完成此題: 10樓:木蘭 去掉兩個&號 在嵌入式環境下,因為記憶體,執行速度等和pc機相比,是有所限制的,所以為了節省空間,提升速度等原因,會使用位操作。至於使用,dwjchdu 已經回答了,可以參照。在程式中節省空間使用方法如下例 define last bit on 0x1 define next bit on 0x2if x las... 是除法取餘運算。用於整數與整 數運算。否則,不同的編譯器會得不同結內果。為取餘運算子,容用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如 13 7 就表示13 除以7餘6。作為雙目運算子,左右運算元可以是數值,... 9 7 是 1.幾,舍位後不是鐵定是 1嗎?不是的,不能通過舍位來判定,不同的機器結果不同,可能是 1,也可能是 2 什麼叫向上取整 向下取整 向上取整指當計算的結果不為整數時取大於計算結果的整數,向下取整指當計算的結果不為整數時取小於計算結果的整數。當計算結果為整數時直接取整數。計算結果處於兩個整...C語言運算子問題
C語言運算子是怎麼運算的,C語言運算子
c語言運算子,C語言 運算子 是怎麼運算的