c語言中x和x有什麼區別

2021-03-04 05:12:23 字數 5926 閱讀 1840

1樓:手機使用者

x++ 是先運算後 + 1 x = 5 比如printf('%d',x++); 輸出的結果是:5 ++x 是先+1 後運算 同樣x = 5 printf('%d',++x); 輸出的結果是:6

2樓:巢秀榮容子

區別是--*x是x位址使用前就減1,*x--使用時按原值。這兩個都是每迴圈一次,位址減1.

c語言中x++和++x的區別?

3樓:匿名使用者

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()

4樓: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)有乙份主要的程式語言實現檔案,視為是參考實現。程式語言俗稱「計算機語言」,種類非常的多,總的來說可以分成機器語言、組合語言、高階語言三大類。電腦每做的一次動作,乙個步驟,都是按照已經用計算機語言編好的程式來執行的,程式是計算機要執行的指令的集合,而程式全部都是用我們所掌握的語言來編寫的。

所以人們要控制計算機一定要通過計算機語言向計算機發出命令。 目前通用的程式語言有兩種形式:組合語言和高階語言。

5樓:楓璽

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

6樓:馬桶是你吧

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)以及超級電腦等作業平台。

7樓:匿名使用者

對++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以後的同理

8樓:匿名使用者

其區別就是表示式值的問題x++時x=x+1,(x++)=x,++x是x=x+1,(++x)=x+1;自增預算符優先順序大於+運算,所以++x+y++=7+5=12這是x=7,y=6;所以下一句中,++x+y++=8+6=14,此時x=8,y=7;在下一句中++x+y++=9+7=16此時x=9.y=8,再下一句都是這樣算的

9樓:匿名使用者

x++是先計算後加1++x是先加1後計算main()

++x和x++有什麼區別?

10樓: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)有乙份主要的程式語言實現檔案,視為是參考實現。程式語言俗稱「計算機語言」,種類非常的多,總的來說可以分成機器語言、組合語言、高階語言三大類。電腦每做的一次動作,乙個步驟,都是按照已經用計算機語言編好的程式來執行的,程式是計算機要執行的指令的集合,而程式全部都是用我們所掌握的語言來編寫的。

所以人們要控制計算機一定要通過計算機語言向計算機發出命令。 目前通用的程式語言有兩種形式:組合語言和高階語言。

11樓:o默化

但他們是單獨的式子的時候 ,沒區別 但是當他們在其餘的表示式中的時候就有了

x++是先輸出x的值在進行自加

而++x是先自加然後在輸出x的值

12樓:仁秀雲考寅

哇曬這個問題看似很簡單啊~~我來縷一縷~~先給你解釋

x!=0

和!x==0

的不同第乙個表示式:是將x和0直接進行值得對比,看是否相等;

第二個表示式:是將x取非,之後再將取非的結果與0進行比較;

這兩個表示式的運算過程不一樣,但是得出的結果是一樣的。

就好像a+b-c

和a-c+b

一樣,結果意義一樣,計算過程不一樣。。能明白嗎~~你要記住!=這個運算子和==,<=,>=是一類的,屬於關係運算子,是進行數值比較的,

他並不能看做是!(邏輯非)和=(賦值運算子)的組合,兩個!符號是不同意義的。

然後看最後乙個問題

!x=0

這個表示式

就跟上兩個表示式完全不同了,

上面兩個是比較,然後得出true或者false的比較結果,這個是賦值表示式啦,是對x進行賦值啦,對x的值進行了改變。

不明白再問我吧~~

13樓:海邊出來的風陽

首先,兩個操作都是自增操作,都只能對變數進行該操作,但是兩種自增有些許區別

++x  先將x的值自增1,然後再在當前表示式中使用x的值。

x++  先在當前表示式中使用x的值,然後再將x的值自增1。

舉例:(1)int x=1;system.out.

println(x++);    //輸出1,  x++先在當前表示式中使用x的值,然後再將x的值自增1,system.out.println(x);     //輸出2,經過上一條指令x自增了1

(2)int x=1;system.out.println(++x);    //輸出2,  ++x 先將x的值自增1,然後再在當前表示式中使用x的值,system.

out.println(x);     //輸出2,經過上一條指令x自增了1。

x++實際上分為三個步驟 取值,計算,賦值 例如x=1,x++, 實際上jvm定義了乙個快取值y y=x;取值(只運算一次) y=y+1;

計算 x=y;賦值 而++x,步驟不一樣, y=x;取值(只運算一次) x=y;賦值 y=y+1;計算 這就是書上說的x++是先計算後賦值 ++x是先賦值後計算。

拓展資料:

x前置後置++都是x+1的意思,前置++x是說先加1再賦值,如:int a = ++x; 結果是a=x+1;後置x++是說先賦值再加1,如:int b = x++;結果為b=x。

在c語言中pd和x的區別,在c語言中p,d和x的區別是什麼?

x不要前導0,也就說前面的0會被自動去掉也可以用 08x列印出來跟 p一樣的 實際上是一樣的,不過 p是專用來處理指標的吧,而 x對列印的資料都可以,感覺差不多,就是用 p的時候列印出來都是8個資料的 計算機儲存的都是2進製,當然也可以用 d列印位址,列印指標,指標就是用來存放位址的 位址需要符號麼...

c語言中0x12什麼意思,C語言中0x12什麼意思

就是十六進位制12h,等於十進位制18。具體還與所使用的場合有關。int c 0x12 就等同於int c 18 char c 0x12 就是 ch 18 它是乙個非列印字元 char s 0x12 則它佔用5個位元組,分別是 0 0 x 1 2 0 然而要想用printf s s 或puts s ...

c語言中和有什麼區別,c語言中的break與Continue有什麼區別

c語言中 和 只在意義乙個方面有區別,具體如下 是關係運算子,而 是賦值運算子。其中c語言中的關係運算子還有 1 是不等於的意思。2 是小於的意思 3 是小於等於的意思。4 是大於的意思 5 是大於等於的意思。擴充套件資料 關係運算子都是雙目運算子,其結合性均為左結合。關係運算子的優先順序低於算術運...