c語言中xy x zw y w是什麼意思

2021-05-14 20:06:49 字數 6475 閱讀 8236

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=xz?x:z:w在c語言中什麼意思?求解釋,詳細點的。。謝謝了!

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的值。

c語言中k是什麼意思啊,C語言中 K 是什麼意思啊 ?

是一個運算子。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這個...

C語言中是什麼意思,C語言中,,,,分別表示什麼意思?請舉例說明

應該是分解為 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...

C語言中72d什麼意思,C語言中72什麼意思

d表示整形,怎麼會有7.2的小數形式?建議查書確認輸入。當然了,也有可能是為了輸出700.00這樣的整型數。查好了,也給個回覆哦 左對齊,按整型輸出,共七位,小數佔兩位 我覺得那個d 應該為f 這個,你可以看書,書上一般在第二章!資料型別,輸入輸出格式!希望能幫助你!c語言中 7.2什麼意思 1 7...