C語言中,M和M有什麼區別,舉個例子

2021-03-04 06:12:56 字數 6204 閱讀 9034

1樓:匿名使用者

m++ m增加1返回m原來的

值++m m 自增1,返回自增後的值

#include

int main()

c語言中,m++和++m有什麼區別,舉個例子

2樓:水冰寒河

m++就是m先參與運算再自增1,++m是m先自增1再參與運算舉個例子:

如果,x=1,y=0,那麼y=++x*++x的值是多少呢?

這個你要先明白運算的優先順序:前++運算的優先順序高於*運算,即x先自增,再參與其他運算.所以y=++x*++x寫的明確點是:

y=(++x)*(++x),就是說,選對做兩個++x,這時x的值變成了3,再做*運算,y的值為9.

還有一種是是後++,即x++這個運算後於*運算,也就是x先運算,再自增,所以如果寫成y=x++*x++,則運算後y 的值為1,而x是3.

這麼說你明白嗎?

3樓:

我說下吧:

比如:如果m=9的話.那麼:

n=m++ 的結果就是:n=9 m=10

n=++m 的結果就是:n=10 m=10了再看下助理的,就是這意思了

4樓:匿名使用者

看書寫順序:

m++即理解為

1)取m值

2)++

++m即理解為

1)++

2)取m值

5樓:就為找葉慈

m++是先取m再加

++m是先加再取m

c語言中,比如乙個變數m,m++和++m的區別在**?哪位高手能給解釋一下嗎?最好能舉乙個例子,謝謝!!

6樓:小樑

public class c 後++時m還是=0的所以不進入if// system.out.println(m);只會執行這句列印出乙個1

// }

if(++m==1)

system.out.println(m);//列印出兩個1}}我只安裝了eclipse 所以用java給你寫不過是乙個道理

7樓:**水心

m就是個普通變數,而m++是先賦值後加1,而++m是先自加1後賦值。

例:int x=5;

y=x++;

則y=5,x=6;

而int x=5;

y=++x;

則y=6,x=6;

8樓:匿名使用者

例如 m=3 令x=m++,

y=++m

分兩步計算

對於x,等價於 x=m,m=m+1 (加號在後,m先賦值再自增)此時 x=1,m=2;

對於y,等價於 m=m+1,x=m (加號在前,m先自增再賦值)此時 y=2,m=2;

9樓:匿名使用者

例子1:

int m=0;

m++;//執行後m=1;等同於m=m+1;

++m;//執行後m=2;單獨成句時,效果和m++;

例子2:

int n=0,m=0;

n=m++;//執行後,n=0,m=1,解釋:先把m的值賦給n,然後自身加1,即m=m+1;

n=++m;執行後n=2,m=2,解釋:m先自身加1(即m=m+1)後再把值賦給n;

//希望你看得明白

10樓:小魚

m是變數,m++是指先將m的值進行比較或其他過程,然後將m的值+1賦給m;++m是指先將m的值+1賦給m,然後將賦值後的執行某個過程。

11樓:_溫柔書生

第一情況: int m=9;

printf("%d",m++);//輸出9,然後m=10。 先執行後自身加1

第二情況: int m=9;

printf("%d",++m);//輸出10,然後m=10。先自身加1後執行其他語法。

懂不懂?

12樓:匿名使用者

m++是先使用再加1,而++m是先加1再使用

13樓:獲取所需

同學你好,是這樣的:先給舉個例子:

1.#include「stdio.h」

main()

2.#include「stdio.h」

main()

1.中的結果m=1

2.中的結果是m=2

簡單地講就是:++m:先加後用

m++:先用後加;

明白了麼?

c語言中 「*c=&m」和「c=&m」的區別是什麼?

14樓:匿名使用者

"&"是取址運算子,取變數在記憶體單元中的首位址,「&」取位址運算子的操作物件必須是記憶體單元(如變數、陣列元素等)。

「*」是間接訪問運算子,間接訪問指標所指向的物件,「*」運算子的操作物件必須是指標(位址)。

因此:*c=&m是把m在記憶體中的位址賦給c這個指標指向的變數

c=&m是把m的位址賦給c這個指標

語言 編輯 鎖定

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言制定了一套完整的美國國家標準語法,稱為ansi c,作為c語言最初的標準。 [1]  目前2023年12月8日,國際標準化組織(iso)和國際電工委員會(iec)釋出的c11標準是c語言的第三個官方標準,也是c語言的最新標準,該標準更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。

c語言是一門面向過程的計算機程式語言,與c++,java等物件導向的程式語言有所不同。

c語言中m++跟++m的區別。。有圖要解

15樓:匿名使用者

我建議你還是把這本垃圾書扔了, 找一本好一點的書吧.

首先 void main()我就不吐槽了, 但是下面這兩個表示式我忍無可忍.

給這樣說吧, 你不用關心q是怎麼等於21, j是怎麼等於8, 因為 正確的結果是undefine!

原因不詳細說了, 你自己google一下 "c語言 *** 序列點" 相信你就會明白了.

如果你將來從事程式設計工作, 千萬別寫這樣的**, 它的結果與編譯器有關.

再說一遍, 請將這本書給扔了, 它會害了你.

16樓:匿名使用者

的確與編譯器有關啊:我執行程式的結果是i,j最後都是8,p是15,q是22,有圖有真相:

17樓:匿名使用者

i++:i增加一而不影響計算結果:

++i:i增加一且q加一,會影響計算結果:

18樓:雲飛_天下

m++在分號以前m的值都是沒有自增前的值,在分號以後m才變成了m+1;

++m在分號以前m的值已經變成了m+1

19樓:匿名使用者

i++ 是先參與運算,然後i本身再自加1,++i 是先自加1,然後參與運算,所以這個例子就是

p=(i++) + (i++) + (i++);

5   +   6   +   7 = 18,i=8q=(++j) + (++j) + (++j);

6 +   7 +   8 = 21,j=8

20樓:鍋安東尼

每乙個表示式都是有值的.

m++是先把m的值作為"m++"表示式的值被傳遞,之後對m進行自加;

++m是先將m自加,再將m的值作為"m++"表示式的值被傳遞.

c語言裡邊m++與++ m區別是啥,求形象解答,謝謝!

21樓:匿名使用者

若m=6;

a=m++;

則執行完該語句後a=6,m=7.(賦值運算取自加之前的值)若m=6;

a=++m;

則執行完該語句後a=7,m=7.(賦值運算取自加之後的值)如果單純有一行是

m++或者++m,沒有賦值或取值,那麼這兩句實際結果是一樣的,都是m的值增加了1

22樓:12我的

m++是先讓m進行加一操作,在使用m的值,例如m=5,a=m++,a就=6

23樓:

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

24樓:酆蓉魯雲淡

我說下吧:

比如:如果m=9的話.那麼:

n=m++

的結果就是:n=9

m=10

n=++m

的結果就是:n=10

m=10了

再看下助理的,就是這意思了

c語言中m+=i++表示什麼意思

25樓:天雲一號

m+=i++ 這是賦值運算子與自增運算子的綜合使用,該表示式等價於如下2條表示式:

m = m + i;

i++;

如果表示式換成m+=++i,則改表示式等價於:

i++;

m = m + i;

// 因為是++i,所以i的值需要先進行加1,之後再參與表示式的運算;而i++是先將i的值代入表示式計算,表示式計算完後,i的值再加1

26樓:吳少春

表示 m=m+(i++),注意的是,假如m的初始化為2,i的初始化為3,則m+=i++之後,m=5,i=4。

27樓:匿名使用者

a+=b 表示 a=a+b;而這裡面b是i++,這就看著貌似有點麻煩,其實很簡單

首先++表示自增 即i++等價於i=i+1;

但是有順序的,即 i++是先用i,然後再++;++i是先++在用i;

比如你這個例子:m+=i++; 就是先用i,然後在i++這樣一來,就相當於兩個語句: m+=i;(或者寫成m=m+i)i++;(或者寫成i=i+1,這裡只有乙個i++,就無所謂++在前或是在後了)

28樓:匿名使用者

i++表示i自增,即i=i+1;

j++=2 有兩個運算子++ 和= 這兩個運算子都是右結合的,所以先賦值j=2 然後j++ j的值變為3

29樓:

i++表示先引用i的值,再使i的值加1,i++當成右值看待(i++=3,這個錯誤)。j++同理

++表示先使i的值加,再引用i的值,++i當成左值看待(++i=3,這個正確)。++j同理

30樓:匿名使用者

抱歉,三樓的不對,四樓的同意錯了!

確實是m=m+i,i=i+1

請注意i++是i先參加運算,然後才加1,這是關係一定要搞清楚!

31樓:智遴

舉個例子吧,假設i=2,m=3,則m+=i++是先進行i++,再進行m=m+(i++),此時i=3,m=5.

32樓:匿名使用者

m=m+i;

i=i+1;

謝謝採納

33樓:

m=m+i;

i=i+1;

34樓:匿名使用者

注意順序

i=i+1;

m=m+i;

35樓:匿名使用者

i=i+1;

m=m+i;

同意三樓的

c語言m++,和m+1有什麼不同嗎

36樓:匿名使用者

m+1只是計算,沒有賦值。

m++是對m自加一

等效於m=m+1.

不過 m++的好處在於,可以和其他語句一起寫。

比如 n=m++;

等效於n=m;

m=m+1;

將兩句合成了一句。

另外,傳統的說法為,m++要比m=m+1更高效,不過在當前編譯器優化下,二者在執行效率上已經沒什麼區別了。

37樓:匿名使用者

m++等價於m=m+1;

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

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

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

x 是先運算後 1 x 5 比如printf d x 輸出的結果是 5 x 是先 1 後運算 同樣x 5 printf d x 輸出的結果是 6 區別是 x是x位址使用前就減1,x 使用時按原值。這兩個都是每迴圈一次,位址減1.c語言中x 和 x的區別?c語言中提供了自增1運算子 和自減1運算子 而...

C語言中的0與0有什麼區別,c語言中「!0」和「!!0」是什麼意思?

型別不一樣 0是整形 用 d輸入輸出 0 是字元型 用 c輸入輸出 再應用的時候具體運算也不一樣 例如十進位制運算a 10 0 10 自負運算的話b 0 10 58 按 0 的ascii碼值48計算 在c語言中,0和 0 的區別,有很多.儲存空間方面,整數0可以佔,2位元組 int 或4位元組 lo...