1樓:匿名使用者
+=是一個運算表示式,它和這個是等價的a=a+i
a=+a就是a=a嘍。
2樓:匿名使用者
平時沒什麼區別。
再輸出的時候,一個輸出的是a的值。一個輸出的是(a+i)的值。
a=i++與a=++i的區別是什麼
3樓:八哥說科技
一、運算型別不同:
「a=i++」是對變數i進行了後置自增運算後在進行賦值。「a=++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 的的值加 1 。「a=++i」相當於將變數 i 的值先加 1 再儲存到變數 a 中。
4樓:匿名使用者
前者可分解為a=i,i=i+1,即i的值先賦給a,i再加1; 後者指i=i+1,a=i,即i先加1,再把加1後的值賦給a;
兩者的區別在於:比如i=1;前者得到的結果是a=1;i=2;後者是a=2,i=2;
希望對你有幫助。嘿嘿~
5樓:匿名使用者
前者運算:先是賦值等於a後。右邊再加1。後者是運算:先加1賦值等於左邊a。例i為3.則首先左式a=i++ 結果a=3, 而a=++i結果是a=4
6樓:的橋
前置運算與後置運算。
假設i=5;
a=i++;a=i;i++)
a=5,i=6;
a=++i;(+i,a=i)
i=6,a=6,
7樓:匿名使用者
a=i++這個是取i再自加,a=++i這個是先自加再取i
8樓:匿名使用者
一直以來,++語法浪費了太多人的時間。說句實在話,++在c語言中其實是一個很細節的語法,除了表達簡練外,真的沒有什麼其它的好處了。
由於中國的c語言教程長期以來被譚浩強主宰,而譚又錯誤的把++ 作為一個c語言重點來教,並增加了一些難點,把本來很簡單的語法,搞得複雜無比!
簡單的來說,++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++。
而且,這也是一種好的程式風格:++語句如非特殊需要,請單獨一行使用。
c語言*a+i 與*(a+i)有什麼區別
9樓:
*a+i
取出指標a的值,然後與變數i求和。
*(a+i)
取出指標a向後偏移i個地址的值。
10樓:天雨下凡
假設有如下**:
int a[5]=;
int i=3;
則*a+i的值為a[0]+i=1+3=4
而*(a+i)的值為a[0+i]=a[3]=7
c語言中為什麼i=-a++和i=-(a++),i和a的值運算結果都是一樣的?
11樓:一顆程式猿
自增/自減運算的優先順序比正/負運算高, 所以這兩個表示式在運算順序上是一樣的。
其次, a++,自增在後,表示式的值取a的原值, 比如a=3; i=a++;i的值是3,a的值是4
所以你給出的表示式, i結果為-3, a結果為4也不用太過於追究, 這個東西也不見得永遠是對的, 這個跟你使用的編譯器有一定關係,知道怎麼回事就行了,也就是在學習/考試的時候會出現, 正常人不會用這麼彆扭的寫法。
12樓:搗蒜大師
i=-(a++)是。
a先自己加a變成4
然後a自增之前的值3取負號給i
因為++在後面。
i是-3~~~i=-(a)
就是a自己加變成4
把增加之後的值4取負號給i
i就是-4
c語言中a表示一個陣列,a[i++]與a[++i]到底有什麼區別?
13樓:l語言之父
a[i++]和a[++i]的區別:
異同點:a[i++]中i++是後自增,必須先使用當前元素的值再使用下一個元素的值,a[++i]中++i是前自增,可以直接使用下一個元素的值。
例子:# include
int main ()
;int i = 0;
printf("%d",a[i++]本輸出的值為1,因為是i++,所以是先使用a[0]的值,再加上1,即先輸出a[0]的值。
i = 0;
printf("%d",a[++i]);本輸出的值為2,因為++i,所以直接使i加1,即輸出a[1]的值。
return 0;}
14樓:匿名使用者
舉個例子給是說吧。
int narray[4] =
int i = 0;
int a = narray[i++]
i = 0;
int b = narray[++i];
//上面這個例子中,最後 a = 7,b = 4,//i++ 是使用i的值,然後使用完以後再自增1//+i 是先把i自增1,然後再使用i的值//所以a = narray[i++]就相當於a = narray[i]; i = i + 1;
//b = narray[++i]; 就相當於 i = i + 1; b = narray[i];
//這麼說你應該明白了吧。
15樓:倒黴熊
a[i++]相當於 a[i] i=i+1a[++i] 相當於 i=i+1 a[i]也就是說 一個先。
使用i的值,然後改變i的值,一個先改變i的值,然後使用i的值。
例如 如果一開始 i=3 則 a[i++]就是 a[3] 而 a[++i]就是a[4]
c語言中i++和++i的區別
16樓:頓遊融語風
i++是先取值後+1;++i是先+1後取值。
比如:i==5,j==4;
則執行j+i++運算後。
表示式值為9,i值為6;
而執行++i+j運算後表示式值為10,i值為6.
17樓:匿名使用者
++i是先進行自加運算,在進行其他運算;
i++是先進行其他運算,再進行自加運算;
舉個例子—— a=0,i=1,a=++i. 由於i先進行自加運算,為2,再賦值給a,所以 a=2,i=2;
18樓:網友
i++ 表示先代入i執行語句, 執行完執行i+1
++i 表示先執行i+1, 然後試用i執行語句。
19樓:池州學院
i++是後加,++i是前加,i++是i的值傳遞後在加,++i是加過在傳值。
20樓:紅領巾飄過
i++是先引用後自加。如n=0;i=0;n=i++;則結果為n=0;i=1;
++i是先自加後飲用。如n=0;i=0;n=++i;則結果為n=1;i=1;
21樓:匿名使用者
唉。。好好看書 或者 自己輸出來 自己看!!
c語言中a->s[i]與a[i].s的區別
22樓:匿名使用者
a->s[i]是a地址上的結構體成抄。
員變數s的第i個元素。
寫成非指標的方式,就是a[0].s[i];
這種寫法,要求a和s都必須是指標型別。
a[i].s是a地址上,第i個a中的成員變數s。
這種寫法,要求a必須是指標,而s不一定是指標。
對比a[0].s[i]和a[i].s,可以看出,這兩個是完全不同的意義。
23樓:匿名使用者
在函式int fun( strec *a, strec *b )你這裡傳送引數是指標。
當a為指標時 ,a->s[i]等價於(專*a).s[i]如果你改成int fun(strec a,strec b)就能用a[i].s了。屬。
24樓:匿名使用者
a是結構體陣列。
的陣列名,a[i]表示陣列中的第i+1個元素,a[i].s表示該結構體中的元內素s,這就是 . 運算子的作。
故a[i].s <=a+i)->s
25樓:舞亦香滿衣
a[i].s 是屬性的訪問方式。
a->s[i]是指標的訪問方式。
26樓:匿名使用者
a->s[i]這本來就是錯的!s是int型別,又不是陣列,也不是指標!
c語言中a+i是地址嗎,書上說a+i是a[i]的指標,既然這樣,那麼*(a+i)為什麼還是
27樓:
a+i其實就是&a[i],肯定是地址。
*(a+i)其實就是a[i],如果a是二給陣列的陣列名,a[i]就肯定是地址(等同於&a[i][0]),如果a只是一維陣列(指標陣列除外)的陣列名,a[i]就不是地址(原因是:二維陣列可以看作是多個一維陣列組成,即陣列的陣列)
*(a+i)+j就是&a[i][j],如果陣列a是二維陣列那就肯定也是地址啦。
a[i][j]則是表示為*(*a+i)+j)
28樓:匿名使用者
a應該是指的陣列名字吧。
你首先應該知道陣列名字本身就是地址了。
a+i是說a的地址向後在移動i個位置。
也就是a[i]
a是指的陣列的首地址,開頭的位置。
*(a+i) 也就是*a[i] 也就是a[i]的地址,只是這個地址離首地址偏移了i位置。
再加上j 就是 a[i][j]地址。
*(a+i)+j是針對二維陣列來說的,也可以說是特殊的一維陣列。
29樓:賽罡諫陽澤
是地址,你要取值是要*(
*(a+i)+j)的。
*(a+i)其實就是a[i][0]的地址。
c語言,c語言,C語言中 與 的區別
第4題 include using namespace std void main else 這兒是隨機生成 else 這兒是隨機生成 int main 第7題 include strinv char str str n 0 int main 本來想幫你全做的,不過6,7好像有人做了,那就幫你做了4...
c語言中《與《的區別是什麼,C語言中 與 的區別是什麼?
舉個例子你就明白了。像 這些比較常用一點兒。比如 int a a 2 與 a 2 效果是不一樣的,a 2,並未改變a的值,但是a 2,效果等於a a 2 a的值實際上是增加了2.所以 也是一樣的,a 2這句只是一個運算,就是a左移2位,但是並未改變a的值,但是a 2,相當於 a a 2,改變了a的值...
c語言中c與s的區別,c語言中 c與 s的有什麼區別?
mxx米小夕 c語言中 c格式符表示輸出的是字元 s格式符表示輸出的是字串。c語言基本構成 1.資料型別 c的資料型別包括 整型 字元型 實型或浮點型 單精度和雙精度 列舉型別 陣列型別 結構體型別 共用體型別 指標型別和空型別。2.常量與變數 常量其值不可改變,符號常量名通常用大寫。變數是以某識別...