1樓:蒿晚竹閃秋
先++在運算bai
(=)a[i]=*p;是a的第dui元素
zhi=*p
a[i++]=*p;是a的第i+1元素=*pa[i]代表這個陣列的其中dao一個元素。如a【0】是專第一個,依屬次類推。
同理,p【i】是指定帶這組陣列的指標。是為呼叫做準備的。
c語言中a表示一個陣列,a[i++]與a[++i]到底有什麼區別?
2樓:l語言之父
a[i++]和a[++i]的區別:
相同點:i都加1,都使i的值變成下一個元素的序號。
異同點:a[i++]中i++是後自增,必須先使用當前元素的值再使用下一個元素的值,a[++i]中++i是前自增,可以直接使用下一個元素的值。
例子:# include
int main ()
;int i = 0;
printf("%d\n",a[i++]);//本輸出的值為1,因為是i++,所以是先使用a[0]的值,再加上1,即先輸出a[0]的值。
i = 0;
printf("%d\n",a[++i]);//本輸出的值為2,因為++i,所以直接使i加1,即輸出a[1]的值。
return 0;}
3樓:匿名使用者
舉個例子給是說吧
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];
//這麼說你應該明白了吧
4樓:倒黴熊
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語言中s[i++] 和s[i] i++的區別
5樓:魂夢藍
用生活中的數學來講就是
第一種相當於:
x=1+1
第二種相當於:
x=y+1
y=1兩種結果一樣,第二種不過是繞了個圈子,把結果賦值過去了希望能幫到你
6樓:匿名使用者
沒有什麼不同啊!都是將i使用之後再加一,對於陣列元素s[i++]和s[i]是相等的。s[i++] 只是比
s[i] i++寫法上簡單一點,其實功能是一樣的。
7樓:水清寒
沒區別 都是計算了s[i]的值,然後i+1
c語言程式設計中的++i和i++有什麼區別?
8樓:匿名使用者
i++和i--的區別:
1、運算方式
i++屬於自增運算,相當於i=i+1;
i--屬於自減運算,相當於i=i-1;
2、值的變化:
假設i=10,分別執行i++、i--後;
i++後:i=i+1=10+1=11;
i--後:i=i-1=9。
擴充套件資料:
無論i++,還是i--,這兩個公式既可以單獨存在,也可以賦值給另外的變數。當賦值引用的時候,他們的含義:
1、i++,先引用i的值,後增加i的值,
如int i=10;
int a=i++;
該程式執行後,a=10,而i=11。
2、i--,先引用i的值,後i的值減1。
如int i=10;
int a=i--;
該程式執行之後,a=10,i=9。
除了以上的用法外,還有一種表示法是++i或者--i,這種表示法i的值也會相應的自增1或者自減1,i的結果和i++與i--是相同的,但是當賦值給另一個變數時,對賦值的變數,結果卻存在差別,因為++i代表先增加,後引用,--i代表先減少,再引用。
例如同樣的程式,i=10,
如果int a=i++,那麼a=10;而int b=++i的話,b=11;
如果int a=i--,那麼a=10;而int b=--i的話,b=9。
9樓:手機使用者
++i在用時是i先自增1,再用這時的i值去參與計算;
i++是用增1前的i去參與計算,參與計算後i再增1;
例子:int i=0;
i++;
printf("%d",i);//這時打出的值為0;
printf("%d",i);//這時打出的值為1,因為i在上個語句中被用過了,本身的值增1
**********
int i=0;
++i;
printf("%d",i);//這時打出的值為1;
c語言中++i 和i++有啥區別啊?
10樓:寫在楓葉上的故事
i++和++i都是c語言裡的自增,但是它們自增的順序不同。++i表示,i自增1後再參與其它運算,而i++ 則是i參與運算後,i的值再自增1。
for迴圈裡迴圈變數增值用i++,而不用++i是因為在迴圈結構裡需要迴圈變數來結束迴圈,而使用i++則會導致本來應該繼續的迴圈少執行一次,所以迴圈結構裡通常都是迴圈變數在一次迴圈結構執行完成之後再自增。
擴充套件資料i++和++i前置後置區別的例子:
1、a = i++;
相當於 a = i; i++;
2、a = ++i;
相當於 i++; a = i;
3、int i=3;
int j=4;
int a = i++;
int b = ++j;
printf("%d, %d\n", a, b);
結果是3,5。++前置:i自增1後再參與其它運算;++後置:
i參與運算後,i的值再自增1」。很明顯,a = i++;由於是先執行賦值運算,再自增,所以結果是a=3,i=4;而b = ++j。
11樓:梅信望鵑
i++和i--的區別:
1、運算方式
i++屬於自增運算,相當於i=i+1;
i--屬於自減運算,相當於i=i-1;
2、值的變化:
假設i=10,分別執行i++、i--後;
i++後:i=i+1=10+1=11;
i--後:i=i-1=9。
擴充套件資料:
無論i++,還是i--,這兩個公式既可以單獨存在,也可以賦值給另外的變數。當賦值引用的時候,他們的含義:
1、i++,先引用i的值,後增加i的值,
如int
i=10;
inta=i++;
該程式執行後,a=10,而i=11。
2、i--,先引用i的值,後i的值減1。
如int
i=10;
inta=i--;
該程式執行之後,a=10,i=9。
除了以上的用法外,還有一種表示法是++i或者--i,這種表示法i的值也會相應的自增1或者自減1,i的結果和i++與i--是相同的,但是當賦值給另一個變數時,對賦值的變數,結果卻存在差別,因為++i代表先增加,後引用,--i代表先減少,再引用。
例如同樣的程式,i=10,
如果int
a=i++,那麼a=10;而int
b=++i的話,b=11;
如果int
a=i--,那麼a=10;而int
b=--i的話,b=9。
12樓:六野枝安民
一直以來,++
--語法浪費了太多人的時間。說句實在話,++--在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++。
而且,這也是一種好的程式風格:++
--語句如非特殊需要,請單獨一行使用。
13樓:匿名使用者
關於自增自減運算,很多書籍沒有把問題講清楚,在c語言裡是這樣的:
1.後置運算:k++表示先運算,後自加。
意思是遇到k++了,我先把當前的k的值拿來參加運算,後面再去管它的自加。
那麼,【「後面」後到什麼程度呢?要後到當前的語句執行完,即遇到分號;表示
語句執行完了,所以k才自加1。】
如:int k=5,b=0;
b=k++;的意思就是,先算b=k(即b=5),遇到分號;表示語句結束,k才自加1,即k變為6。
2.前置運算:++k表示先自加,後運算
這個意思就是遇到++k了,先把k的值加了1,再往後執行別的。
如:int k=5,b=0;
b=++k;的意思就是,先把k自加1,即k為6,再算b=k(即b=6)。
掌握好這兩點,k--和--k也是一樣的道理。
14樓:容桂花壽戌
如果i的初值為1的話,
x[++i]相當於x[2],而x[i++]相當於x[1]
說明:不管++寫在i的前面,還是後面,對於i本身來說,都會自增。
15樓:濯振饒黎
中間這個
t[i]=s[i]
同時也是迴圈條件,每次執行時,先進行賦值,再判斷t[i]的值(因為賦值表示式的值就是左邊變數的值),如果為零則退出迴圈,否則繼續迴圈。這其實是把迴圈體與迴圈條件合併了。
16樓:鍾圖丙冬
++i是先將i=i+1;然後再用此時的i進行下面的步驟,i++是先在下面的程式中用此時的i的值,然後再i=i+1;
17樓:獨初雪冉笛
沒有什麼不同啊!都是將i使用之後再加一,對於陣列元素s[i++]和s[i]是相等的。s[i++]
只是比s[i]
i++寫法上簡單一點,其實功能是一樣的。
18樓:滑卓然春寒
對於整個表示式沒有區別,但是i的值有區別,++i,是i會自增1,而i++,i的值就不會變,你只要記住i在前面的,i的值就不會變,i在++後面,i的值就會加1,
我以前看是學c的時候,也沒有分清楚,後來就是用這種方法分清楚的
19樓:伍冰珍展思
c語言中++i與i++的區別是:++i是i先遞加後再引用i,而i++則是先引用i後,再遞加i;
20樓:鄧佩蘭懷莞
有的!比如說int
i=0;char
ch[20];
那麼ch[i++]就相當於ch[0],i=i+1=1;
而ch[++i]就相當於i=i+1=1,ch[1];
也就是說i++是先使用後自加,而++i是先自加再使用!
21樓:戲君昊卑西
i++和
++i要是單獨佔一行的話,是沒有區別的,都是將i的值加1.但是如果被巢狀在其他語句中是有區別的。
例如:i=
1;if(i
++)//執行結束後
對i+1,這裡i=2
if(++i)
也就是i++,是使用i的值以後,再對i+1;而,++i是先進行i+1,然後再使用i的值。
c語言中wb,rb是什麼意思,C語言中c是什麼意思
在c語言的檔案操作中,wb和rb分別對應著對二進位制檔案的兩種操作方式 寫操作和讀操作 c語言中 c是什麼意思 用於格式化輸入輸出函式中,針對char型別的匹配。比如 輸入 用於輸入一個字元型。輸出時類似。所有的格式化輸入輸出函式,都可以用這個。c語言中的 c 是什麼意思?例如printf c c ...
c語言 內容如下,c語言中 與 的區別
因為如果沒有換行符號,這兩個printf在一行連續輸出 你在printf i am a computer n 加上一個換行符就可以讓這一句單獨一行了 求c語言 設計一個選單程式,包括3項內容如下,1 單日票 2 聯票 0 退出 include include void fun1 void void ...
c語言的a和a有什麼區別,C語言中a與a的區別是什麼詳細一點,謝謝
如果要列印的值 來是a 如printf d a 那打源印出來的只是a的值bai.但是第二次打du 印的a值就 zhi是 後的值.就是先打dao印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a...