1樓:
在c語言中使用逗號運算子將兩式聯接起來,這樣的式子稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值.
如:(3+5,6+8)的值是14,(a=3*5,a*4)的值是60,同理(x=6,x++)的值為7.
你還可以自己程式設計嘗試其它特殊的值,如(x=0,scanf("%d",&x)).
c語言中,x=6,表示式(x+=x/=x%=4)的值是多少?為什麼?
2樓:o小腳冰涼
x=2;
1先計算x%=4;相當於x=x%4這個時候x=2了。
2再計算x/=x%=4;這個時候x=2,且x%=4;這一塊也等於2了,所以x/=2; x=x/2; x=2/2;x=1;
3後計內算x+=x/=x%=4;前面的一部容分(x/=x%=4;)=1了!也把x賦1了!所以x+=1相當於x=x+1;相當於x=1+1=2了!
注意你算的時候一定不要忘了這一點:x+=4的意思是x=x+4;實際上每算一次都是要給x賦一次值的,你不能把x=6直接給代入全式,x的值隨著計算而變化的!
3樓:匿名使用者
結果的確是2,原bai
因如下du:運算順序是從右往左,zhi等號右邊的運算優先dao級高於左邊的回,因此
先進行答
步驟1:x%=4,此時x=2。步驟2:x/=2;所以得出x=1 。步驟3:x+=1,得出x=2 。
注意的是x的值在一直變化,別再把6帶入就可以了。
4樓:匿名使用者
#include
main()
5樓:匿名使用者
x=2x=x+x x=12
x=x/x x=1
x=x%4 x=2
c語言逗號表示式的問題 x=6,y=7,z=8 r=func((x--,y--,x+y),z--)
6樓:匿名使用者
首先說明原理:
1)逗號運算子也稱順序求值運算子,即從左至右順序執行,最後乙個值會覆蓋前面的值,所以使用逗號將幾個表示式連線起來的帶括號的表示式,最終整個逗號表示式的值為最後乙個表示式的值。
2)自增和自減運算子有前置和後置之分,在混合運算中,前置是先自增或者自減,再進行取值;而後置恰好相反,即先取值進行運算,然後再自增或者自減。
在r=func((x--,y--,x+y),z--)這個函式呼叫中,第乙個引數使用了原理1)和2),第二個引數使用了原理2)。
首先對於第乙個引數(x--,y--,x+y),這是乙個逗號運算子,從左至右運算:x--(先取x的值,然後x自減,其值變為x=5),同理(先取y的值,然後y自減,其值變為y=6),但由於這是乙個逗號運算子,因此x+y的值為x+y=5+6=11,最終r=func((x--,y--,x+y),z--)=func(11,z--);
其次,z--同理,先取值z=8進行傳引數,進行函式呼叫r=func((x--,y--,x+y),z--),然後z才執行自減(從而z=7)
補充:如果x--,y--換成r=func((--x,--y,x+y),z--)結果也是一樣的,這是因為逗號運算子是從左至右進行運算的,先算完第乙個逗號之前的表示式,在計算第二個逗號之前的表示式,依此類推,故,無論是前置還是後置,x的值都是在計算第二個逗號之前已經改變;但是逗號運算子中最後乙個逗號除外(即前置才起作用,後置對逗號表示式的結果沒影響)。。。
書寫不易,人艱不拆,不喜勿噴,謝謝點讚!!!
7樓:匿名使用者
逗號表示式使用逗號連線起來的幾個式子。。從左往右執行,最後整個逗號表示式的值為最後乙個表示式的值。
所以先執行x-- y-- 然後執行x+y 最後整個逗號表示式的值為x+y的值。即11
z--表示在這個語句中先使用z。。語句之後在--。 即執行完r=()之後 z的值為7,但在當前z使用值為8
8樓:匿名使用者
因為x和y自減了以後作為第三個引數
而z--表示式的值為z自減之前的值,為8
表示式執行結束了以後,z為7
9樓:匿名使用者
x--, 是表示式評估
之後才遞減,評估完括號裡第乙個引數x--後,x變成5同理,評估完括號裡第二個引數y--, y變成6等到評估x+y時,5+6,自然就是11啦。
z--,評估之後才遞減,所以傳給func的值還是8。
c語言(x=y=6,x+y,x+1)是什麼意思
10樓:成侯花園
首先,這是乙個逗號表示式,執行法則:從左到右依次運算,取最後乙個表示式的值作為這個逗號表示式的結果值。所以運算過程如下:
6賦值給y,y賦值給x(賦值運算子「=」按照自右向左運算),x與y相加(但是x與y的值仍為6),x加1結果為7。最後本逗號表示式結果為7。
11樓:興星鑫
逗號表示式,從左至右依次計算表示式,然後取最後乙個表示式的值,作為整個逗號表示式的值
12樓:wmy丶未知屬性
x的值與y的值相同等於6,所以x+y=6+6 x+1=6+1
13樓:吳韋水海白
x%=6相當於x
=x%6,也就是本身和6取餘,再複製給本身。這個y/(x%=6)表示y除以x和6取餘的結果
c語言中x++和++x的區別?
14樓:匿名使用者
c語言中提供了自增1運算子
++和自減1運算子--
而且,這兩種運算子,還分為字首運算和字尾運算
如:int a=5;
a++; //字尾運算,表示a=a+1 = 5+1=6
a--; //字尾運算,表示a=a-1 = 6-1=5
--a; //字首運算,表示a=a-1 = 5-1=4
++a; //字首運算,表示a=a+1 = 4+1=5
以上單獨使用自增1或自減1運算子,字首運算和字尾運算沒有區別,其結果都是完成變數a的自加1或自減1
字首運算和字尾運算的區別在於:字首運算,先運算,再使用變數;字尾運算,先使用變數,再運算。如:
int a=5;
printf("a=%d\n", ++a ); //字首運算,先運算a=a+1=5+1=6,再使用變數a,輸出結果a=6
a=5; //重新賦值為5
printf("a=%d\n", a++ ); //字尾運算,先使用變數a,輸出結果a=5,再運算a=a+1=5+1=6
void main()
15樓:mei_陳先生
++x是x的值
先自增1,再計算x的值。
x++是先計算x的值,再將x的值自增1。
舉例:int x=10;
system.out.println(x++);
system.out.println(x);
//第乙個輸出10, x++先在當前表示式中使用x的值,然後再將x的值自增1,第二個輸出11,因為經過上一條指令x自增了1。
int x=10;
system.out.println(++x);
system.out.println(x);
//第乙個輸出11, ++x 先將x的值自增1,然後再在當前表示式中使用x的值,第二個也是輸出11,經過上一條指令x自增了1。
拓展內容:
程式語言(programming language),是用來定義電腦程式的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。
最早的程式語言是在電腦發明之後產生的,當時是用來控制提花織布機及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的程式語言,而且每年仍有新的程式語言誕生。很多程式語言需要用指令方式說明計算的程式,而有些程式語言則屬於宣告式程式設計,說明需要的結果,而不說明如何計算。
程式語言的描述一般可以分為語法及語義。語法是說明程式語言中,哪些符號或文字的組合方式是正確的,語義則是對於程式設計的解釋。有些語言是用規格檔案定義,例如c語言的規格檔案也是iso標準中一部份,2023年後的版本為iso/iec 9899:
2011,而其他語言(像perl)有乙份主要的程式語言實現檔案,視為是參考實現。程式語言俗稱「計算機語言」,種類非常的多,總的來說可以分成機器語言、組合語言、高階語言三大類。電腦每做的一次動作,乙個步驟,都是按照已經用計算機語言編好的程式來執行的,程式是計算機要執行的指令的集合,而程式全部都是用我們所掌握的語言來編寫的。
所以人們要控制計算機一定要通過計算機語言向計算機發出命令。 目前通用的程式語言有兩種形式:組合語言和高階語言。
16樓:楓璽
c語言中x++和++x的區別如下:
1、自增的順序不同
x++表示x自增1後再參與其它運算。
++x是x參與運算後,x的值再自增1。
2、自增型別不同
x++屬於後置自增運算。
++x屬於前置自增運算。
擴充套件資料前置後置區別的舉例
1、a = i++;
相當於 a = i; i++;
2、a = ++i;
相當於 i++; a = i;
3、int c;
int d = 10; // 測試自增、自減c = ++d; // ++d 是先對 d 的值加 1,再使用 d 的值執行該行命令
int e = 10; // 測試自增、自減c = e++; // e++ 是先使用 e 的值執行該行命令,執行完後再對 e 的值加 1
17樓:馬桶是你吧
c語言中x++和++x的區別如下:
x++是在有這個的這個算式中先使用x,再自增1及x=x+1。
++x是先自己加1,再使用。
用 ' ' 包括起來的都是字元,也就是char型的量,注意是量,不是變數,而x則就是變數。
比如你有乙個char型的變數x,你想把x的值賦值為x,就這樣寫 x='x'; 將字元'x'賦值給字元變數x。賦值後變數x的值就是字元x了。
擴充套件資料:
c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。
18樓:匿名使用者
對++i和i++的解釋:******************************=
簡單的來說,++i 和 i++,在單獨使用時,就是 i=i+1。
而 a = ++i,相當
於 i=i+1; a = i;
而 a = i++,相當於 a = i; i=i+1;
如果實在搞不明白++ --怎麼回事,那也不是什麼天塌下來的事。
因為a=++i完全可以寫成 i++; a=i。
a=i++完全可以寫成 a=i; i++。
而且,這也是一種好的程式風格:++ -- 語句如非特殊需要,請單獨一行使用。 ******************************== 解釋程式:
printf("%d\n",++x+y++);++x後x=7與y相加後是12然後y變成6以後的同理
C語言中表示式105的值是,C語言表示式105的值是
關係運算子 運算順序自左往右,所以1 0 為0,0 5為1。所以表示式的值為1。根據運算子表,是從左往右結合的。先看1 0是假,返回0。原式就變成 0 5,是真,返回1 所以結果就是 1。值是1,1 0為假 值為0 0 5為真 值為1 c語言 表示式1 0 5的值是 是1。根據c語言運算規則,檢查左...
c語言中1023的值,C語言中表示式「10321010」怎麼解
1.0 2 3 1.5 在c語言中 除數和被除數有乙個為浮點數時 結果就是浮點數 所以1.0 2 0.5 0.5 3 1.5 c語言中表示式 1?0?3 2 10?1 0 怎麼解 1?0?3 2 10?1 0 0?3 2 的值是2 10?1 0 放入值是1 覺得這兩個中間是不是少個 x?y z這是三...
c語言中,intx1,那麼表示式x13的值是多少,為什麼
值為0。因為先使用x的值為1 使用之後自增為2 用1乘以1 3,但1除以3結果為0 因為這是兩個整型數運算結果仍是整數 結果為0 x x先參與運算,再自加,因此在上式中,x 相當於1 1 1 3 1 3,兩運算數均為整型,結果也為整型 1 3 0.333333 取整為0 c語言中表示式1 4 2.7...