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; 木子說 區別如下 1 主要應用領域不同 corel draw主要應用於商標設計 標誌製作 模型繪製 插圖描畫 排版及分色輸出等諸多領域,其功能可大致分為兩大類 繪圖與排版 ai主要從事平面設計方面,是圖形設計編輯軟體,同時也是向量繪圖軟體,主要製作向量圖形,並可以做小規模的排版,主要是配合ps製作廣... 是一個運算表示式,它和這個是等價的a a i a a就是a a嘍。平時沒什麼區別。再輸出的時候,一個輸出的是a的值。一個輸出的是 a i 的值。a i 與a i的區別是什麼 一 運算型別不同 a i 是對變數i進行了後置自增運算後在進行賦值。a i 是對變數i進行了前置自增運算後再進行賦值運算。二 ... 小丁創業 1 介面不同 core i7使用1150介面,第六代i7使用1151介面。2 所支援使用記憶體不同 core i7支援ddr3介面,第六代i7支援ddr4介面。3 處理器內部不同 第六代i7處理器內部不再具有整合穩壓器,core i7使用整合穩壓器。core i7處理器是intel在200...CDR和AI的區別是什麼
c語言中a i與a i的區別
酷睿i7和六代i7的區別是什麼