1樓:南瓜蘋果
?:稱為條件運算子。?:就是表示?前的表示式的值是否為真,是的話取冒號前的值,否則取冒號後的值。
相當於:
if (x>y)
else
擴充套件資料
c語言中條件表示式的通用形式如下:
exp0=exp1?exp2:exp3
如果exp1為真(非0),那麼把exp2的值賦給exp0;如果exp1為假(0),那麼把exp3的值賦給exp0。
2.verilog語法中也有類似c語言中的條件表示式
如下:inout sda;
assign sda=(flag==1)?data_buf:1'bz;
當flag==1時,sda的值等於傳送的資料的data_buf(sda相當於output型別),
當flag==0時,sda的值變成高阻態(sda相當於input型別)。
2樓:匿名使用者
呼叫一個函式p(),傳入的引數是變數x的地址以及變數y,函式的返回值賦給變數z。
好好學習天天向上
3樓:三天打魚
x=1y=3
z=5z>y 條件成立 返回1
然後用返回的值跟後面的x比較 1>x 條件不成立 返回0 所以結果是0
要合併兩個邏輯 應該用&& 與運算子 寫為 z>y && y>x
4樓:匿名使用者
?:是一個三目運算子,他的意思是如果問號前面的表示式為真,則返回:之前的表示式的值,否則返回:之後的表示式的值
這句話可以拆解為
if(x>y) else
也就是將x、y的較大者賦值給z
5樓:丶菜雞幾雞幾
!(x+y) > z 表示式中:
!的優先順序高,先計算出x+y的值,若x+y不為0,則!(x+y)的值為0,反之為1,然後將這個值和z進行比較,如果大於z返回1,小於z返回0 。
具體的,這裡是將x+y的值作為一個bool型返回了,所有不為0的數都相當於true(1),為0的數也就是false。!將表示式取反,!0==1 / !
1==0 。然後在大於號那裡,又將這個bool型變數轉為了一個整型變數與z進行比較,若表示式結果為真返回true(1), 否則返回false(1)。
6樓:匿名使用者
?:這是一個3目運算子,即條件表示式
問號左邊的表示式為真,就取問號和冒號中間的表示式的值,否則就取冒號右邊的值
我們可以看成是2步,先看左邊
x 取值x,然後再看 由於左邊取值x這是右邊就為x 同理 x值大於w的值,所以x 7樓:匿名使用者 x+=y+=z相當於這個語句:y=y+z,x=x+y; 我寫下執行過程,樓主看看就應該明白了。 x+=y+=z;那麼y=y+z,所以y==2;x=x+y,所以x==5。 執行printf();由於x=z為真,所以輸出1,6\n。 x=y>z>=5;關係運算子優先順序高於賦值運算子,所以先執行y>z>=5,由於y>z為假(上面已經得到y==z==15),所以y>z==1,由於1>=5為假,所以x=0。那麼x==0,y==15,z==15,輸出0,15,15\n。 希望對你有些幫助。 8樓: ?:是個運算子號,格式是 a>b?c:d, 含義是,如果?前面的條件成立,則取 c做為本式子的結果,否則取d作為式子的結果 你給的題目是個巢狀的表示式,首先判斷w和x哪個更大 如果w>x成立 那麼就返回w,如果w不大於x 就判斷z和y哪個更大 z>y成立 那麼輸出z 否則返回x 9樓:匿名使用者 ? :是三元運算子,整個表示式根據條件返回不同的值,如果x>y為真則返回x,如果為假則返回y,之後=賦值給z。相當於: if(x>y) z=x; else z=y; 10樓:匿名使用者 並不複雜,考察運算子優先順序。 !z代表z求非; 當z=0的時候,!z=1;當z!=0的時候,!z=0這句話, 也就是當y大於1的時候等效於x+1; y<0的時候等效於x; 0 這種問題,一個printf語句解決 11樓:丨嗚呼哀哉 1: x+=y+=z y = y+z = 2; x = y+x = 2 + 3 = 5; printf: x < y (5<2),錯誤,所以結果是0; 2:z=y=x++*3 y = x*3 = 5*3;x++; x = 6; z=y=15; printf: y>=z,(15>=15),正確,結果為1; x = 6;結果為6 所以輸出1,6 3:x = y > z >= 5 首先要知道運算子 < <= > >= 是左結合性的而= *= /= %= += -= <<= >>= &= |= ^= 是右的 z = 15; y = 15; x = 6; y > z , 錯誤,結果為0 0 >= 5, 錯誤,結果為0 x = 0 所以輸出0,15,15 12樓:匿名使用者 優先順序的問題,由運算子的結合性,+=是右結合的從右邊開始看 首先y+=z;也就是y賦值為原來的值增加z即y = y+z; 然後x +=y; 也就是x = x +y; 關於這個**。首先執行了x+=y+=z;之後x、y、z依次為5,2,0 x z>=5; 由運算子的結合性從賦值號右邊看起。首先是y>z這個是錯誤的,所以結果為 x = 0>=5;這個值為假,結果為x = 0; 此時y、z的賦值不變。所以結果為 0,15,15 13樓:誓唁詤唁 不對不對,邏輯非運算子「!」優先順序要高於「>」,這裡的意思是,如果w不為0,那麼就成了0>z,說明z小於0是表示式成立;當w為0時,!w就是1,那麼就成了1>z了……。 總的來說這裡就是判斷0>w還是1>w。 麻煩採納,謝謝! 14樓:匿名使用者 w>x?w:z>y?z:x 首先判斷w和x哪個更大 如果w>x成立 那麼 結果就是w如果w不大於x 就判斷z和y哪個更大 z》y成立 那麼輸出z 否則結構就是x 這裡面是個巢狀 某些符號的運算級更高 會優先執行 比如 <>符號高於? 所有 會先判斷 15樓:與子如初見 先求!z的值,如果z是一個非零值,則!z為0,如果z為0,則! z為1,然後比較y與!z的關係,若z為非零值,則即為判斷y>0是否成立,成立則y>!z的值為1,否則為0,若z為0. 則即為判斷y>1是否成立,成立則y>!z的值為1,否則為0,。最後用x的值加上y>! z的值。 16樓:或許有點像朋也 根據優先順序計算,先算括號裡面的y>!z,如果z!=0的話,!z就為0,z為0的話!z就為1, 然後y>(!z),判斷y是否大於1或者0(之前已經提到了),大於就返回1,不大於1就返回0,最後再和x相加就行了 舉個例子:x==2,y==2,z==3 得出來的就是3。以上 17樓:好嘞啊啊啊啊 先取z的否定 判斷一是否大於z的否定 再加上x的值 !zz的否定 當z為非0值時 !z =0 z為0時 !z =1 所以最後的值 就是x+0 或者x+1 18樓:匿名使用者 相當於if(x else if(z else 19樓: z=x>y? x : y; 條件賦值語句x > y 時 z=x; x < y 時 z=y; x == y 時 z=x; 20樓:匿名使用者 z取反如果y>z的取反則值為1 否則則為0 x再加上0或者1也就是上面的結果 m=x 21樓:匿名使用者 加括號後就清楚了 m=(xz?x:z):w). 意思是if(xz) else }else 希望採納! 22樓:陳龔 其實這是一個條件表示式的複合句最後再賦值~條件表示式其一般形式是x>y?x:w 其意思是x與y比較大小,若x>y成立,則這個表示式的值為x,反之為w。 本題中,相當於是把第一個?後的x用x>z?x:z來代替而已! 不知道明白沒~ 23樓:手機使用者 拆開來就是這樣: a=x>z?x:z; m=x c語言程式 w>x?w:z>y?z:x是什麼意思 24樓: ?:是個運算子號,格式是 a>b?c:d, 含義是,如果?前面的條件成立,則取 c做為本式子的結果,否則取d作為式子的結果 你給的題目是個巢狀的表示式,首先判斷w和x哪個更大 如果w>x成立 那麼就返回w,如果w不大於x 就判斷z和y哪個更大 z>y成立 那麼輸出z 否則返回x 25樓:匿名使用者 w>x?w:z>y?z:x 首先判斷w和x哪個更大 如果w>x成立 那麼 結果就是w如果w不大於x 就判斷z和y哪個更大 z》y成立 那麼輸出z 否則結構就是x 這裡面是個巢狀 某些符號的運算級更高 會優先執行 比如 <>符號高於? 所有 會先判斷 c語言中z=x>y?x:y是什麼意思? 26樓:南瓜蘋果 ?:稱為條件運算子。?:就是表示?前的表示式的值是否為真,是的話取冒號前的值,否則取冒號後的值。 相當於: if (x>y) else 擴充套件資料 c語言中條件表示式的通用形式如下: exp0=exp1?exp2:exp3 如果exp1為真(非0),那麼把exp2的值賦給exp0;如果exp1為假(0),那麼把exp3的值賦給exp0。 2.verilog語法中也有類似c語言中的條件表示式 如下:inout sda; assign sda=(flag==1)?data_buf:1'bz; 當flag==1時,sda的值等於傳送的資料的data_buf(sda相當於output型別), 當flag==0時,sda的值變成高阻態(sda相當於input型別)。 27樓:尤永修喻辰 c中x+(y>!z)這種表示式寫的其實很不好解釋:括號中優先順序 !高於》 先求!z 也就是表示式 的邏輯取反 z非01!z =0;z=0則!z=1 然後判斷y的值 是否大於!z 最後用x+上上一步判斷的值 這樣寫的不好處在於 混用邏輯表示式和整型變數 (假定xyz是int之類) 寫法不嚴格,很容易編譯器警告(雖然不會報錯)。屬於習慣不好的寫法,儘量避免 28樓:玩轉困難 這句話的意思是: 如果x>y為真,那麼把x的值賦給z,否則把y的值賦給z。 ?在這裡起判斷作用。 :和?一起是c語言裡一起用的,是基本語法,書上有的。。 你好好找找書上,以後的c++和c#裡也有這種寫法 29樓:依夏青蘭晨 根據優先順序計算,先算括號裡面的y>!z,如果z!=0的話,!z就為0,z為0的話!z就為1, 然後y>(!z),判斷y是否大於1或者0(之前已經提到了),大於就返回1,不大於1就返回0,最後再和x相加就行了 舉個例子:x==2,y==2,z==3 得出來的就是3。以上 30樓:愈升榮其寒 先求!z的值,如果z是一個非零值,則!z為0,如果z為0,則! z為1,然後比較y與!z的關係,若z為非零值,則即為判斷y>0是否成立,成立則y>!z的值為1,否則為0,若z為0. 則即為判斷y>1是否成立,成立則y>!z的值為1,否則為0,。最後用x的值加上y>! z的值。 是一個運算子。a b 等效於a a b 不過 前者效率略高一些。應該是類似於k a 變數 或者k 6 常量 k a 等價於 k k a 是c語言的簡略寫法,一種語法。c語言中 k 2 是什麼意思 k是一個指標,這句話的意思是k指向的地址中存放的變數值等於2,k k 2 將k乘以2並將結果賦值給k這個... 應該是分解為 tmp 盯敞馳緞佻等寵勸觸滑 tmp f i 1 j k 1 a i j tmp f i 1 j k 1 a i j c語言中 分別表示什麼意思?請舉例說明 1 c語言中的 意思為 右移後 賦值 示例為 x 8 x 3 右移後結果為 00000000 00000000 00000000... d表示整形,怎麼會有7.2的小數形式?建議查書確認輸入。當然了,也有可能是為了輸出700.00這樣的整型數。查好了,也給個回覆哦 左對齊,按整型輸出,共七位,小數佔兩位 我覺得那個d 應該為f 這個,你可以看書,書上一般在第二章!資料型別,輸入輸出格式!希望能幫助你!c語言中 7.2什麼意思 1 7...c語言中k是什麼意思啊,C語言中 K 是什麼意思啊 ?
C語言中是什麼意思,C語言中,,,,分別表示什麼意思?請舉例說明
C語言中72d什麼意思,C語言中72什麼意思