C語言中什麼 X和 X效果相同,什麼時候不同詳細 x 3,y 4,yy x 這個情況高手們幫忙分析一下,謝謝

時間 2021-06-20 19:53:45

1樓:親蛙

樓主可參考c語言基本教程書,

一般情況下,在一段程式裡面,x++是先使用x的值再將x加一,++x是先將x加一在使用!樓主注意是一段程式,有先後順序的,比如(x=3,y=4,y++,y-x)這種情況,括號裡面就是一段程式,y加完1之後再用。提醒,括號裡面的演算法是從做到右計算的。

這種情況下經過y++後y=5,然後在計算y-x,但是最後括號演算法的結果,也就是值是等於最後一個式子的結果,也就是等於2 !但是如果是(x=3,y=4,++y,y-x),最後的值y-x=4-3=1,是這種情況下經過++y後,y的值先用再加,變為5

2樓:匿名使用者

若單獨出現效果的確相同,但出現在表示式中時就有區別了,x++是先使用x的值再將x加一,而++x是先將x加一在使用!(x=3,y=4,y++,y-x)這種情況下經過y++後y=5,y-x=2

3樓:

x++表示先執行運算後執行迴圈

++x表示先執行迴圈後執行運算

c語言中:y=++x*++x與y=(++x)*(++x)為何結果不同?

4樓:匿名使用者

這個就涉及到優先順序的關係啦。這不帶括號和帶括號的優先順序應該是不一樣的。你可以再c語言程式執行過程中除錯哦。

5樓:微猥一手

.. 樓主你是把兩個句子一起執行了麼 那肯定不一樣 前面的計算會影響後面的結果的

6樓:destiny_葭陘

如果你沒打錯,結果是一樣的;

程式1如下:

# include

main()

程式2如下:

# include

main()

執行結內果完全一

容樣,都是49;

程式3如下:

# include

main()

這樣寫的話,結果就不一樣,因為在執行a=++x*++x前,x的值已經不是5,而是7了。

7樓:

我測試的結果是++x*++x和(++x)*(++x)計算結果相同。

編譯環境是vs2005.

8樓:匿名使用者

這是一個運算子號優先順序的問題:『 ++ 』 > 『()』 > 『 * 』。

所以:y=++x*++x相當於y=x*(x+1),y=(++x)*(++x)相當於y=(x+1)*(x+2)。

9樓:我僅僅是個菜鳥

我測試的結果是一樣的。。。gcc編譯

在c語言中int x=3,y=4; z=x>y?++x:++y; 輸出的x,y是什麼 為什麼

10樓:殷錦委曉旋

?:是條件運算子,其基本形式為:a?b:c

a為邏輯表示式,當a為真時,其條件表示式的值為b表示式的值,否則為c表示式的值

這裡x>y為假,所以z= ++y,y = 5,而表示式++x沒有被執行,所以x為3

c語言 (x=3,y=4,x++,y+=y-=x*=y)

11樓:匿名使用者

x=3,y=4

x++,x就是4了

y+=y-=x*=y從右往左算就好

c語言問題:設x=4,y=(++x)+(++x);那麼y的值等於

12樓:gta小雞

這是一個ub操作,不同的編譯器根據壓棧順序的不同得到的結果也不同。如果你得到的結果是12,說明編譯器是將左右運算元都處理完畢後再將結果壓棧的。

不要糾結這樣的語句,程式設計時也要儘量避免這樣的語句。

c語言中x+=y,x-=y分別表示什麼意思

13樓:匿名使用者

x+=y 等價於

x = x + y

x-=y 等價於 x = x - y

同理x*=y 等價於x = x * y。

如以下**:

int main()

結果圖:

14樓:匿名使用者

+=; -= 是複合的賦值運算子

x += y; 等價於 x = x + y;

x -= y; 等價於x = x - y;

c語言採用複合運算子 一是簡化程式。二是為了提高編譯效率,能產生質量較高的目標**

15樓:千鋒教育

x+=y 就是x=x+y的簡寫

x-=y 就是x=x-y的簡寫

延伸知識點

x*=y 就是x=x*y的簡寫

依次類推

16樓:匿名使用者

x+=y 就相當於 x=x+y 其他的類似

17樓:匿名使用者

1、+=; -= 是複合的賦值運算子。

18樓:誰課桌上的青春

x=x+y

x=x-y

c語言中,++x||++y&&++z的意思是?還有++x&&++y&&++z???????????

19樓:匿名使用者

要看優先順序,,邏輯與與邏輯或的優先順序是一樣的,那就先從左開始,先++x||++y做判斷,判斷的結果在於&&++z進行判斷。主要就是優先順序,你可以去譚浩強的書中去看,那有詳細的介紹。

20樓:匿名使用者

一、前++ (前--)都是先進行自增,再使用變數,如:--x 相當於 x=x-1 , x==0 ?

二、&& 和 || 有斷路特性

&& 當遇到 0時,不再執行其後的同級運算|| 當遇到 1時,不再執行其後的同級運算如:int x=1, y=2 ;

--x&&++y ; 這句執行完成後,x=0, y依然是2如:int y=0, z=2;

++y||++z ; 這句執行完成後,y=1 z依然是2

21樓:匿名使用者

首先從c語言運算子優先順序來看, && 高於||

所以上面表示式相當於 ( (x>=2 && y<'z') || !y)) 就是((1 && 1) || 0) , 最後就是(1 || 0)=1

22樓:左左強強峰峰

邏輯運算而已,用於判斷;

1,++x||++y&&++z

先給x + 1,若等於0,計算右邊,分別給y和z +1後若不為0整個表示式不為0,若x +1不等於0則不計算右邊的表示式;

2,++x&&++y&&++z

先給x +1, 若不等於0,計算右邊,給y +1若不等於0,計算右邊,給z +1若不等於0表示式不等於0;否則整個表示式為0;

3,x++&&--y&&z--||--x

先看x 是否為0,如果不為0,x +1;計算右邊,先給y-1,若不為0,計算右邊,判斷z是否為0,不為0,表示式(x++&&--y&&z--)值為1,z-1;右邊不用計算了;若z為0,z-1, 右邊先給x-1若不為0整個表示式為1,若為0整個表示式為1;

23樓:宋文婷

答案是c

x>z && y < 'z' || !y把變數替換就是45 > 0 && 'a' < 'z ' || !y45 > 0為真,'a' < 'z' 也為真,所以45 > 0 && 'a' < 'z '為真,變為1 || !

y1與什麼值相或都為1,所以答案為1

24樓:匿名使用者

++x 是先++ 後用x

x++ 是先用x 後++

&& 邏輯與

|| 邏輯或

c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?

25樓:

答案是1。

涉及到的運算子: ! () + - && /運算子優先順序為:() ! / + - &&運算過程:

x=3,y=4,z=5

!(x+y)+z-1&&y+z/2

!(3+4)+5-1&&4+5/2

所以表示式計算步驟為

!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2!7為 0

-> 0+5-1&&4+5/2

5/2 整數除整數得整數 2

-> 0+5-1&&4+2

-> 4&&6

邏輯運算 &&

擴充套件資料c語言運算子的優先順序:

如果同一優先順序的運算子,結合次序由結合方向所決定。

26樓:匿名使用者

只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:

main()

答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;

然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;

然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;

接著計算加減運算,也就是變成4&&6;

因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。

要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~

27樓:匿名使用者

1優先順序: 算數》條件》關係》賦值

關係中的優先順序: 非》與》或

28樓:匿名使用者

1,把運算子優先順序搞清楚就好了

29樓:匿名使用者

x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。

30樓:匿名使用者

!(3+4)+5-1&&4+5/2

=!7+4&&4+2

=!11&&6

所以說那個式子的值是:不是11並且是6

c語言中設short x,y; y=(x=3,x+2,++x,x+ +*2);則x,y的值各是 40

31樓:

i++就是在讀取i的時候i是原來的值 讀取完了之後i再加1++i意思是i先加1再讀取值

y=(x=3,x+2,++x,x+ +*2);是括號運算,值等於最後一個表示式的值, y=(x=3,5,4,4*2)

x=5,y=8

32樓:驀然回首時

逗號表示式:

表示式1,表示式2,表示式3,...... ,表示式n(1) 從左往右逐個計算表示式。

(2) 表示式n的值即是整個表示式的值。

x=5y=8

C語言中 0x11是什麼意思,C語言中 0x11是什麼意思

小夏在深圳 0x11是十六進位制的11的意思。11前面的0是忽略的。十六進位制的一位就是二進位制的四位。在c語言中,十六進位制的數字常常以 0x 或者 0x 字首開頭,c語言中的八進位制是以字首 0 開頭的,例如04524 就表示一個八進位制數字,它等於十進位制的 2388。在上世紀 60 年代,流...

c語言x x 2什麼意思,c語言中,x 2是什麼意思?

象長順居念 指的是 x x 指的是x x c語言的執行順序是從右到左 x x 2 先計算右邊的 x 2再用 結果帶入到x 中. 廉秀雲班環 x a等價於x x a 賦值運算子當中,有一類c c 獨有的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。total total 3 它的...

c語言中0x00ffffff是什麼意思啊

讓服務成就美好生活 通常int是4個位元組,0x00ffffff作用是隻取後三個位元組的值,屏掉第一個位元組。 風若遠去何人留 這個是語句的一部分,前面還要有一個操作變數。比如a 0x00ffffff 是雙目操作符,需要兩個運算元,代表含義為按位與操作。計算時,按位計算,兩個運算元上對應位的值如果均...