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 是雙目操作符,需要兩個運算元,代表含義為按位與操作。計算時,按位計算,兩個運算元上對應位的值如果均...