增1減1運算子,字首運算和字尾運算請大大們詳細舉例講解,為什麼有變數的值和表示式的值

2022-10-25 12:25:47 字數 5737 閱讀 2891

1樓:昝傲易

額舉個例子

下面的幾個表示式都在 int i=0 的基礎上運算1:int j = i++;這裡i=0、表示式的值j=1;

2:int j = ++i;這裡i=1、表示式的值j=1;

3:int j = i--;這裡i=0、表示式的值j=-1;

4:int j = --i;這裡i=-1、表示式的值j=-1;

這4個例子你應該能明白一點吧

其實就是兩個重點

1:字首會在表示式運算前獲得新值、字尾在表示式運算後獲得新值2:表示式和變數的值是兩個概念,要注意分離

2樓:

增1和減1運算子主要有4種情況(都是自右向左計算哦)語句 等價語句

m=n++;(字首) m=n; n=n+1;

m=n--;(字尾) m=n; n=n-1;

m=++n; n=n+1; m=n;

m=--n; n=n-1; m=n;

3樓:時光流逝而去

1:int j = i++,表示式的值j=0 這裡i=1;

2:int j = ++i;這裡i=1、表示式的值j=1;

3:int j = i--;表示式的值 j=0;這裡i=-14:int j = --i;這裡i=-1、表示式的值j=-1;

4樓:匿名使用者

下面的回答有誤,答主好像記錯了,後面第二個回答的才是正解

5樓:明鏡止水

全錯了 你會嗎 不會還說

c語言問題求解

6樓:

1 對 2 錯 3 對 4 對 5 對

c語言中++y是什麼意思

7樓:芒亭晚堵婷

!y,對於y取非

一般用於判斷式中,例如:

if(!y)

當y等於0時,!y就為!0,0為假,所以!y為真,if條件成立當y不等於0時,!y就為!真,所以!y為假(也可以理解為!y=0),if條件不成立

8樓:匿名使用者

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

9樓:匿名使用者

++ 和-- 用法相同,如果出現在變數前,變數先加一再進行運算(--是減一)出現在變數後就是先運算,運算完了再加1。

10樓:匿名使用者

++i,--i的含義是:在使用i之前,先使i的值加一(減一);

11樓:匿名使用者

y=y+1 表示y的值是以前y的值上再+1而y++表示的是y的值加上下乙個數,再算y=y+1例如:當y=1時x=++y+1,這時x的值等於3,y的值等於2當y=1時x=1+y++,這時x的值等於2,y的值等於2

12樓:千島j玉葉

就是使用y之前先把y加1。

比如y=2;

++y後就是y=3;

13樓:匿名使用者

就是先 y=y+1,然後在對整個表示式賦值

c語言中 x/=2 怎麼理解

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樓:秀黯然

1.字首bai運算子是在使用變數前先進行運算du,後zhi綴是使用後再進行運算。

dao比如:var a=10;

alert(a++);//輸出專10,然屬後a=a+1

alert(++a);//a=a+1,然後輸出a

先把i的初值賦給表示式(i++),作為表示式(i++)的值,然後i自增1作為i的值。

2.因為你的後置++返回的並不是最初被自增的物件本身。所以(n++)++這個表示式的第二個++實際上自增的是乙個臨時物件,而原本的n自然沒有再次發生變化。

所以為了防止這種困惑必須安利c++11:

sometype sometype::operator ++(int) &。

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

16樓:匿名使用者

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

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

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

18樓:楓璽

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

19樓:馬桶是你吧

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

C 中的自增加運算子,C 運算子過載之自增 自減 運算子

簡單的說 運算子就是變數的內容加1個單位,但究竟1個單位是多少要看實際版定義的變權量的型別 比如 定義int a 0 那麼a 表示在下次使用a時a中存放的變數會變為1,即a 0 1 如果定位為int a b 這裡我們假設b已經經過了定義,為int b 10 此時a中存放的內容為b 0 的位址,我們假...

關於new運算子和記憶體的問題

delete 只是把指標所指向的記憶體給釋放掉了,並沒有把p給解決掉,就是說,p的記憶體位址是在的,但是這個位址指向的記憶體是真的已經被釋放掉變成 垃圾了 申請記憶體是在記憶體中尋找到一塊 一塊不夠可能通過鍊錶形式將多塊小的鏈結起來 將首位址返回給指標,記憶體被標記為已占用 釋放記憶體是釋放了記憶體...

lua指令碼有沒有自加自減運算子,請問一下lua指令碼裡面有沒有關於與 或 非 異或等位運算子,

到目前為止,沒有相關運算子。5.2 以前標準庫不提供按位操作函式,5.2 開始標專 準庫 bit32 提供按位操作屬的函式。比如下面的 只可以可以用在 5.2 及以後版本。print bit32.bor 1,2 3 lua 表取長運算子是什麼?如來果乙個表容量一半的元素,用源 取長度取的不對。但是對...