1 i和2 i哪個大,i 和 i命令有什麼區別?

2021-03-27 14:37:15 字數 6179 閱讀 6734

1樓:

虛部不為零的虛數不能比較大小,虛部為零的虛數可以比較大小。

0/i=(0*i)/(i*i)=-0/1=0

1/i=(1*i)/(i*i)=-i

2樓:匿名使用者

1+i和2+i 不好比較

0/i=0

1/i=-i

√i=√e^(π/2)=e^(i*π/4) 或者e^(i*5π/4)即√i=(√2+i*√2)/2

或者√i=-(√2+i*√2)/2

0^i不存在 (這條我不確定)

1^i=1

i^3=-i

3樓:匿名使用者

複數是不能比較大小的,他沒有意義的!

你仔細看下複數的定義和性質吧!

0/i=0(0除任何數都等於0)

1/i=-i(上下同乘以i)

根號i虛數可以開方嗎?

0的i次方=1(任何數的0次方都是1)

1的i次方 =1(只要是1做底數,結果都是1)i的3次方=-i(這個是基本性質)

你就喜歡問,但不肯想,我的回答不一定正確,那些高中的東西早忘記了。

4樓:敦誠

可以用範數的形式比較大小,在高中階段就是求模,至於0的i次方 ,1的i次方 ,i的3次方等。如果你學過矩陣分析或複變函式的話就好解釋了, 如果沒學過,就太難講解。但是可以告訴你,他們都是有意義的。

只有上了大學,甚至到了研究生階段才會明白的。

5樓:含風納雪

已經有這麼多人回答了

那我就不答了

6樓:匿名使用者

複數是不能比較大小的,因為它不像實數,實數時有序的,可以在數軸上從左向右依次排列,而複數是沒有順序的!對於你說的那些計算,他們本身是不具備任何意義的,量子力學中有虛數的應用.

7樓:匿名使用者

虛數不能比大小

一般比大小是比虛數的模

8樓:數學尖子生

虛數不能比較大小!只有實數可以比較大小!

i++和++i命令有什麼區別?

9樓:蟲心菜

i++和++i命令的區別有:

1、賦值順序不同

++ i 是先加後賦值;i ++ 是先賦值後加;++i和i++都是分兩步完成的。62616964757a686964616fe59b9ee7ad9431333366303839

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

形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。

2、效率不同

比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,但是要注意其生存週期,以及i值在程式流中的變化。

3、 i++ 不能作為左值,而++i 可以。

左值是對應記憶體中有確定儲存地址的物件的表示式的值,而右值是所有不是左值的表示式的值。一般來說,左值是可以放到賦值符號左邊的變數。

但能否被賦值不是區分左值與右值的依據。比如,c++的const左值是不可賦值的;而作為臨時物件的右值可能允許被賦值。左值與右值的根本區別在於是否允許取地址&運算子獲得對應的記憶體地址。

比如:int i = 0;

int *p1 = &(++i);//正確

int *p2 = &(i++);//錯誤

++i = 1;//正確

i++ = 1;//錯誤

擴充套件資料

當i=5時,s=(++i)+(++i)和s=(i++)+(i++)的值:

1、當i=5時,s=(++i)+(++i)=13 先算第一個(++i),++在前面,就把i先加1再把賦值,即先把i變為6然後再得出(++i)的值為6,這時i已經變為6了,

再計算第二個(++i),++在前面也是先把i加1後再賦值,不過這時的i已經為6了,第一步的時候把i變成6了的,然後加1的話就變成7了,所以第二個(++i)的值為7,s=(++i)+(++i)=6+7=13。

2、s=(i++)+(i++)=11 先算第一個(i++),i在前面,就先賦值再把i加1,即(i++)的值為5,i的值變為6,第二個(i++),i在前面,先賦值再把i加1,這個時候的i已經為6了,即(i++)的值為6,而i已經變為7了。所以s=(i++)+(i++)=5+6=11。

10樓:匿名使用者

1、賦值

順序不同抄:

++ i 是先加後賦值;襲++i 是後面一步才bai賦值的,duzhi所以它能夠當作一個變dao量進行級聯賦值,++i = a =b,即 ++i 是一個左值;

i ++ 是先賦值後加;i++ 的後面一步是自增,不是左值。

++i和i++都是分兩步完成的。

2、效率不同:

比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。

3、操作完成後,值不同:

對於n=++ i ,進行操作後,n的值發生了改變,其值變成了i+1。

對於n=i++ ,進行操作後,n的值不發生改變,其值仍然為i。

11樓:關鍵他是我孫子

i++和++i命令的區別:

1、i++是先使用i,再賦值計算

,即就是在計算程式時,先把 i 的值拿來用,然後在自回增1。

2、++i是先賦值計算,再使用,答即就是在計算程式時,是想把 i 自增1然後拿來用。

3、 ++i,在位元組碼層面,會先進行iinc,也就是執行自增,然後load變數。

4、 i++,則是,先load變數,後自增(因為已經load,所以本次自增,並不會影響已經load的變數值)。

比如:for(i=0;i<10;i++)

i先使用,用完最後在i++

for(i=0;i<10;++i)

i先自增,然後再用。

12樓:匿名使用者

一直bai以來,++ --語法浪費du了太多人的時間zhi。說句實在話,++ -- 在c語言中其dao

實是一個很細回節的語法,除答了表達簡練外,真的沒有什麼其它的好處了。

由於中國的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樓:匿名使用者

第一個是先取i的值,然後再把i加一,第二個是先把i加一,再取i的值

14樓:滾去學習

1、單獨使用時

i++和++i沒有區別,都是自增1

2、進行運算時

i++是 i 先運算在加1

++i是 i 先加1再運算

15樓:難堪

i++ 返回原來的值,++i 返回加1後的值。

16樓:糖糖又笑了

i++是先把i的值拿來用,然後在自增1

++i是想把i自增1然後拿來用

比如:for(i=0;i<10;i++)

i先使用,用完最後在i++

for(i=0;i<10;++i)

i先自增,然後再用

17樓:阿哲

剛好做copy

題到這裡,產生了疑問,現在來把自己的想法寫下來。

i++翻譯一下,就是先運算,後加,

++i翻譯一下,就是先加,再運算,和加號順序相應記。

比如sum+=++i;

就是i=i+1;sum=sum+i;

再比如sum+=i++;

sum=sum+i;i=i+1;

18樓:匿名使用者

後置加加和前置加加

i++ 表示i的值作為表示式的值,然後i自加1++i 表示i先自加1再作為表示式的值

個人覺得還是很有用的,能使程式變得簡潔。

19樓:匿名使用者

i++就是反回

bai(一般來du說)i值i再加1,

++i是i加一

zhi再返回i值.dao

..如下回的話:

int i=0;a=1;

a=a+i++;

cout <<"a="<輸出

答a=1a=3

20樓:小☆☆白

上邊各位兄臺的回答已經很詳細了,我就不多說了

21樓:夏環村

1. ++在前表示先計算後執行

2. ++在後表示先執行後計算

22樓:浩劫

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

++i和i++有什麼區別啊?

23樓:匿名使用者

至於++i和i++有什麼區別,舉個例子

1.a = i++; 等校為

a = i;

i = i + 1;

2.a = ++i; 等校為

i = i + 1;

a = i;

i++和++i的 最重要的區別大家都知道就是 +1和返回值的順序

但,兩這還有一個區別(在c++中)就是i++在實現的時候,產

生了一個local object

class int;

//++i 的版本

int int::operator++()

//i++ 的版本

const int int::operator ++(int)

所以從效率上來說++i比i++來的更有效率

具體細節你可以看more effective c++ 的m6

看看c++類過載運算子就知道了。

對於i++的實現是:

int temp;

temp = i;

i = i+1;

return temp;

而++i的實現是:

i = i+1;

return i;

比如printf("%d",i++);是先輸出i值隨後i自加,而printf("%d",++i);正好相反

for(operation1;operation2;operation3)

都是按operation1

operation2

//do something

operation3

的順序來執行的

而i++與++i在單獨的語句中結果是一樣的。

簡單而言: ++i 在 i 儲存的值上增加一併向使用它的表示式 ``返回" 新的, 增加後的值; 而 i++ 對 i 增加一, 但返回原來的是未增加的值。

24樓:l溯流光

區別在於:++先做別的事,再自己加1,++i先自己加1,再做別的事情,形象的理解,你可以把++i比作自私的人,首先考慮自己的事,i++是無私的,先為別人照想,這樣方便記憶。

首先我們定義一個變數i,int i=5,然後我們做執行printf(「%d」,i++),我們會發現輸出結果是5。

是為什麼呢,我們要搞清楚printf(「%d」,i++)這句話是做兩件事:1.輸出i、2.i=i+1,這裡的順序,是先輸出i,再執行i=i+1。

然後我們初始化變數i,i=5;、然後我們做執行printf(「%d」,++i)、我們會發現輸出結果是6,其實printf(「%d」,++i);做的也是這兩件事:1.輸出i、2.

i=i+1,只是先做i=i+1,然後輸出i。

ii和ii 的區別理解,i 和 i命令有什麼區別?

i i和i i 的區別 1 執行時間不同。i先執行i 1,然後執行程式i 先執行程式,然後執行i 1 int i 8 printf d n i 首先執行加法,因此列印輸出為9 printf d n i 2 進行減法的順序不同。首先執行減法,列印輸出為8 printf d n i 首先執行程式。列印輸...

簡單的c 程式設計fori 1 i100 i和i 1 for i100 i有什麼區別

你這語法應該是這樣 for int i 1 i 100 i 這個從1迴圈到99。i 1 for i 100 i 這個也是從1迴圈到99,沒有區別,也不會死迴圈。區別是變了i的使用範圍不一樣,一個在for內起作用,一個在for內,for外都可以用。i 1 for i 100 i 寫成 i 1 for ...

ii2和i2的區別,C語言i 2和i 2的區別

i i 2 和 i 2的區別主要有以下三點 1 運算順序不相同 簡單說就是i i 2 比 i 2多了一次對變數 i 的運算。i i 2是先進行i 2的運算得出一個結果,再賦值給i。i 2就是先賦值然後在進行加法。2 得到的結果不相同 c語言中i 2 等同於 i i 2 這是簡略寫法,但是計算時演算法...