a i 與ai的區別是什麼,i 和 i的區別

時間 2022-02-05 11:25:03

1樓:八哥說科技

一、運算型別不同:

「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 中。

2樓:匿名使用者

前者可分解為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;

希望對你有幫助。嘿嘿~

3樓:匿名使用者

前者運算:先是賦值等於a後。右邊再加1。後者是運算:先加1賦值等於左邊a。例i為3.則首先左式a=i++ 結果a=3, 而a=++i結果是a=4

4樓:的橋

前置運算與後置運算

假設i=5;

a=i++;(a=i;i++)

a=5,i=6;

a=++i;(++i,a=i)

i=6,a=6,

5樓:匿名使用者

a=i++這個是取i再自加,a=++i這個是先自加再取i

6樓:匿名使用者

一直以來,++ --語法浪費了太多人的時間。說句實在話,++ -- 在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++。

而且,這也是一種好的程式風格:++ -- 語句如非特殊需要,請單獨一行使用。

i++和++i的區別

7樓:匿名使用者

a = ++i,相當於 i=i+1; a = i;

a = i++,相當於 a = i; i=i+1;

如果有表示式 a = i++  它等價於 a = i ; i = i + 1;

如果有表示式 a = ++i  它等價於   i = i + 1; a = i;

1 首先兩者的區別是:前者是先賦值,然後再自增;後者是先自增,後賦值

2 ++i和i++都是分兩步完成的。因為++i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的後面一步是自增,不是左值。

3  ++i 和i++ 的使用,一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,因為編譯器一般都會給你做優化。但是要注意其生存週期,以及很難察覺的寫髒,就好像指標delete以後一定要賦予0一樣,我們要注意i值在程式流中的變化。

8樓:我不知道

簡單地說,都是i自加1。區別是,i++是執行完後面的語句才加1;而++i就先做i+1才執行後面的語句。

9樓:淺源深科

++ i 是先 ++ 再輸出,i ++ 是先輸出再 ++ ,兩者的執行順序要搞清楚

10樓:匿名使用者

關於自增自減運算

,很多書籍沒有把問題講清楚,在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也是一樣的道理。

11樓:匿名使用者

++i是在進行運算之前使i自增1,再用增後的值進行運算i++是在進行運算之後才使i增1,使用原值進行運算一次後,再使i自增1

你執行一下這個再體會體會就明白了:

i=1;j=1;k=1;t=1;

m1=i++ + i++;

m2=++j + ++j;

m3=k++ + ++k;

m4=++t + ++t;

(注:自增自減速運算只能對變數進行,常量和表示式不能進行該運算)

12樓:匿名使用者

workdinner回答的很對,i++使用後加1,++i使用前加1;

所以單獨用的話是顯示6和7,

你在一起用先顯示i++,顯示的是6,但i=i+1=7,再用++i所以顯示8

13樓:匿名使用者

++在後面,就是用了再加

++在前面,就是加了再用

所以,system.out.println(i++)中,++在後面,所以就是用了再加,故而先用了i,再把i+1.。

反正我就是這樣記得。。樓主可以參考下

14樓:浩劫

從c++ 的角度來看,兩者的效率以及左右值、作用差別都很大,以上答案都只說了作用或者左右值的區別。詳情請看我的部落格++i、i++、i+=1、i=i+1的區別不復制黏貼了

在c++中假如i=8,誰幫我詳細解釋一下++i與i++與a=++i與a=i++它們四個有什麼區別

15樓:古道林峰

++i 執行後:這個表示式的值是9,i的值是9(先加一,後使用)

i++ 執行後:這個表示式的值是8,i的值是9(先使用,後加一)

a=++i 執行後:這個a的值是9,i的值是9(先加一,後使用)a=i++ 執行後:這個a的值是8,i的值是9(先使用,後加一)

16樓:

++i與i++沒區別,i的值為9;a=i++相當於a=i,i++,結果為a值為8,i值為9;a=++i相當於i++,a=i,結果a值為9,i值為9

a[i++]= 和a[i]= i++ 的區別

17樓:莘元斐苟寅

前者bai可分解為a=i,i=i+1,即i的值先賦給a,i再加1;

後者指du

zhii=i+1,a=i,即i先加1,再把加1後的dao值賦給a;

兩者的區回別在於:比如i=1;前者得到的結果是答a=1;i=2;後者是a=2,i=2;

希望對你有幫助。嘿嘿~

18樓:神丶雨祭丨

在循bai環體中

a[i++]++

假設i=0

表示數du組第1個元zhi素開始每個元素等於原dao來的元內素加一完成迴圈容之後

陣列的每個元素都加了一

相當於for(i=0;i

19樓:施遠板嬋

前者運算:先是賦值等於a後。右邊再加1。後者是運算:先加1賦值等於左邊a。例i為3.則首先左式a=i++

結果a=3,

而a=++i結果是a=4

20樓:張振軒

a[i++] 不是賦值 是將a陣列裡的元素遍歷而a[i] = i++ 是將a陣列所有元素被賦值b[k]=" ";k++

是將字串陣列 b[k]所有元素賦值為空

21樓:匿名使用者

第一個將 a[i] 賦值為 =號後面的值,然後將 i 加一

第二個將 a[i]賦值為 i 當前的值 ,然後將 i 加一

22樓:匿名使用者

兄弟,這裡涉及到copy的知識點是賦值表bai達式是自右向du左執行。比如a[i++]=i和a[i]=i++是有區別的zhi。dao

假設i=0,第一個表示式a[i++]=i,a[0]=0,執行完本語句i=1;

第二個表示式:a[i]=i++先執行賦值後面到i++,i++=0,但是i已經變成了1,因此第二個表示式的意思為a[1]=0;

所以兩個表示式是有區別的,你可以單步除錯看下i值和資料a值的變化。

23樓:匿名使用者

a[i++]=

把值賦指的是 a的第i++ 個元素

b[k]=k++

指的是把 k++的值賦給b的第k個元素。

這些問題。不難,書上都有的。

首先要把書讀透讀爛!

要學會自己去尋找解決問題的方法。

加油~~~

a[i] = i+1 與a[i] = ++i的區別

24樓:匿名使用者

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。

25樓:匿名使用者

第一種是先取+1後再賦值,賦給i元素,後一個也是先加1,但由於先算等號右邊,所以i的值會自加1,會賦給a[i+1]元素

26樓:

後者執行完畢後,i會變成新值(原值+1)

前者則i的數值不會變

你的問題補充:

for(int i = 0; i

你迴圈體中也有++i,這樣一來一個迴圈之後,i增加2!!!

27樓:淦海瑤

改成a[i] = i++

就可以了

++i是用完才加,所以i和a[i]中的下標是相等的i++是加完採用,則下標和i是加一的關係

c語言中a+=i與a=+i的區別

28樓:

a+=i相當於a=a+i

a=+i相當於a=i

29樓:匿名使用者

+=是一個運算表示式,它和這個是等價的a=a+i

a=+a就是a=a嘍

30樓:匿名使用者

平時沒什麼區別.

再輸出的時候,一個輸出的是a的值.一個輸出的是(a+i)的值.

陣列a[++i}和陣列a[i++]有區別嗎?

31樓:自由↗定義

有區別,舉例說明:a[3]=;i=1;

那麼 a[++i]=a[2]=3;

a[i++]=a[1]=2;然後i=i+1a[++i]相當於a[i+1]; i=i+1;

a[i++]相當於a[i];i=i+1;

CDR和AI的區別是什麼

木子說 區別如下 1 主要應用領域不同 corel draw主要應用於商標設計 標誌製作 模型繪製 插圖描畫 排版及分色輸出等諸多領域,其功能可大致分為兩大類 繪圖與排版 ai主要從事平面設計方面,是圖形設計編輯軟體,同時也是向量繪圖軟體,主要製作向量圖形,並可以做小規模的排版,主要是配合ps製作廣...

c語言中a i與a i的區別

是一個運算表示式,它和這個是等價的a a i a a就是a a嘍。平時沒什麼區別。再輸出的時候,一個輸出的是a的值。一個輸出的是 a i 的值。a i 與a i的區別是什麼 一 運算型別不同 a i 是對變數i進行了後置自增運算後在進行賦值。a i 是對變數i進行了前置自增運算後再進行賦值運算。二 ...

酷睿i7和六代i7的區別是什麼

小丁創業 1 介面不同 core i7使用1150介面,第六代i7使用1151介面。2 所支援使用記憶體不同 core i7支援ddr3介面,第六代i7支援ddr4介面。3 處理器內部不同 第六代i7處理器內部不再具有整合穩壓器,core i7使用整合穩壓器。core i7處理器是intel在200...