a與a這兩個有什麼區別啊c語言中a和a有什麼不同?

2021-03-07 09:46:42 字數 5359 閱讀 2500

1樓:芳元寶

*a++與a++區別如下:

1、a++是先取a的值然後進行++運算。

2、*a++是先執行++運算,再執行 *, 即指標先移動一個位置,在對移動後指標所指位置解引用取值。

3、*與++是c語言中的運算子,++的優先順序高於*。

2樓:匿名使用者

an和a的區別,用法區別

3樓:匿名使用者

因為沒有說明a的定義,這裡看

問題推測應該是個指標

a++表示a指向下個地址,例如a如果當前指向陣列num[0]的地址,那麼a++後,當再次使用a時,其應該指向了陣列num[1]的地址了;

*a++表示取指標a指向的地址中存放的內容,然後給指標a++令其指向下一個地址,如上例a指向num[0],而陣列num[0]中的內容是0的話,那麼,*a++的值應該為0,而執行此語句後對應的a應該指向了陣列num[1]對應的地址了;

也可以這樣說:*a++相當於先取當前a指標指向的地址中內容,然後進行a++,而a++單是對a指向的地址向後移動1個單位而已;

4樓:騰訊電腦管家

哪一個好,並沒有一個絕對的標準,都有其不同的特點和優點,產品的設計、目標人群、等很多方面都有比較明顯的區別,建議根據個人的使用需要、喜好以及使用環境、實際預算,選擇適合自己的。

5樓:匿名使用者

*a++ 要求a一定要是個指標變數,如:int *a; int x=; a=x ;

*是操作指標地址 的運算子,如上述,此時*a 就是1*a++中,*運算級高,所以,會先算*a , 然後進行 a=a+1而a++只代表指標的移動,即a=a+1

6樓:清月影寒

指標運算子*與自增運算子++同一優先順序別,按照自右向左的結合方式*a++等價於*(a++),意

思是「指標a所指向的地址的內容」,比如陣列b[3]=,指標a=b(其實是a指向陣列首元素即b[0]),則*(a++)=3,之後指標a自加一變成a+1指向元素b[1]。a++簡單不說了。

7樓:

區別大得很啊,a++就是a自增1(對於不同資料型別,自增1可能不僅僅是+1而已)

*a++,必須a是指標,返回a所指向的值、然後a再自增1

8樓:夏枕風眠

一個指標,一個資料,指標就是指向地址。。地址加一

c語言中*a++和(*a)++有什麼不同?

9樓:茆德悟旻

也不算很難理解啊

說的通俗點

a++就是先把a當前的值

進行輸出或運算啥的

然後a在自增1

就是加1

++a也就先把a當前的值自增1

然後在輸出或運算啥的

好比a的值是1

b=++a

先把a當前的值1

自增1然後運算就是賦值給b

所以b=2

a=2b=a++

先把a當前的值1運算

就是賦值給b

所以b=1

然後a在自增1所以a=2

++--是1元運算副

具有右綜合性

優先順序高過

邏輯算術

賦值關係等這些運算副

10樓:度浩麗局妙

1,表示式的

值不同,++a的值是原a的值加1,a++是原a值例1int

a=1,

b;b=++a;

printf("%d",b);

例2int

a=1,

b;b=a++;

printf("%d",b);

2,++a可以做左值,a++不可以

例1int

a=1,

b=5;

++a=b;

printf("%d",a);

例2int

a=1,

b=5;

a++=b;/*這裡是個編譯錯誤*/

printf("%d",a);

11樓:閩恨甲瑾

hahugo88的回答很正確,這個意義必須掌握好哦!

我就是因為這個概念模糊考試丟了10分

12樓:匿名使用者

*** = *a++等價於 *** =*a;a++;指標移了一位*** = (*a)++等價於*** =*a;(*a)= (*a)+1;指標沒有移位,內容加1了。

13樓:澤男君

作為單獨的語句,a++;與++a;並沒什麼區別

但是b = a++;和b = ++a就有區別了

a++這個式子的返

回值是a,所以b = a++相當於b = a,然後a = a+1;

++a的返回值是a+1;所以b = ++a相當於a = a+1;然後b = a;

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。

14樓:夜神月

優先順序 () > ++ > *

*a++ 先執行++ 再執行 * 即指標先移動一個位置,在對移動後指標所指位置解引用取值。

(*a)++ 先執行*a 再執行++ 即先對指標所指位置解引用取值,再對這個值自增加1.

15樓:滄海雄風

*a++ 和(*a)++

區別 一個是 指標後移 一個是指標指向的內容自加舉例int *a, b[2]=,c;

a = b;

c=*a++ 那麼 a 指向1 則c等於2c=(*a)++ 那麼 c 等於2

過程不一樣而已

舉例子 一個是別人讓你移動一格

一個是你自己移動一格

16樓:

優先順序的關係自增的級別要高

a++和++a的區別,能舉個例子嗎

17樓:仁昌居士

a++和++a的區別為:加1操作不同、操作期間a值不同、過程物件不同。

一、加1操作不同

1、a++:a++先執行加1操作。

2、++a:++a後執行加1操作。

二、過程物件不同

1、a++:a++的過程物件為a引數變數。

2、++a:++a的過程物件為a++表示式。

三、操作期間a值不同

1、a++:a++在操作期間的a值為原值。

2、++a:++a在操作期間的a值為原值+1。

舉個例子:

1、a=1;b=a++;運算後:b=1,a=2。

2、a=1;b=++a;運算後:b=2,a=2。

18樓:匿名使用者

a++ 的含義是先賦值後相加,如 b=a++; 先將a的值賦給b,然後a再加上1;++a的含義是先相加後賦值,如 b=++a 先將a加上1,然後再把加上1的a賦給b.

int a=1;

b=a++; ---> b=a ,b=1;a+1,a=2;

b=++a;--->b=a+1,b=2; 此時的a已經是2

19樓:匿名使用者

a艹做完表示式後自增,艹a先自增再做表示式

20樓:尚學堂科技****

字尾自增法(a++): 先進行表示式運算,再進行自增運算。

字首自增法(++a): 先進行自增運算,再進行表示式運算。

舉例1如下:

public class operation }舉例2如下:public class operation}

21樓:匿名使用者

誒嘉嘉和嘉業的區別能舉例說明嗎?當然了,就像一加一加一和二加一,呃誒加1+2是的,他的用意不一樣。

a+1和*(a+1)有什麼區別

22樓:匿名使用者

語句中,b = *a+1 -- 指標a 指向的數值加1,*a 是數值, b 等於 那個數值 加 1。

或 把a看成陣列元素 b = a[0] + 1;

*(a+1) -- 指標 (a+1) 指向的數值b = *(a+1) -- 可以看成陣列元素 b = a[1];

23樓:匿名使用者

an和a的區別,用法區別

*a+1和*(a+1)有什麼區別

24樓:

語句中,b = *a+1 -- 指標a 指向的數值加1,*a 是數值, b 等於 那個數值 加 1。

或 把a看成陣列元素 b = a[0] + 1;

*(a+1) -- 指標 (a+1) 指向的數值b = *(a+1) -- 可以看成陣列元素 b = a[1];

25樓:匿名使用者

int b[2];

int *a;

a=b; //a指向陣列b首地址,暨b[0]的地址*a + 1 // *a就是取a指向地址的值,暨b[0],所以*a+1 == b[0]+1

*(a+1) // a+1,指標+1,就是指標指向下一個地址,暨b[1]的地址,所以*(a+1)== b[1]

26樓:匿名使用者

*運算+運算

的次序有區別

前面是*先,後面是+先完畢

27樓:匿名使用者

*a+1 是指標*a 加上1

*(a+1) 是在a+1位置上的指標

c語言*a+i 與*(a+i)有什麼區別

28樓:

*a+i

取出指標a的值,然後與變數i求和

*(a+i)

取出指標a向後偏移i個地址的值

29樓:天雨下凡

假設有如下**:

......

int a[5]=;

int i=3;

......

則*a+i的值為a[0]+i=1+3=4

而*(a+i)的值為a[0+i]=a[3]=7

聯通這兩個網有什麼區別,這兩個有什麼區別?

您好,3gwap和3gnet都是bai手機接入du點,騰訊天王卡zhi 大王卡在實dao 名認證後即可馬上版享受專屬流權量免費服務 系統自動啟用 無需手動啟用。為保證正常使用專屬流量,請將安卓手機接入點設定為net方式,即3gnet接入點,一般在手機的設定 網路選單中設定。如發現沒有專屬流量免費標識...

c語言問題pi與pi有什麼區別啊

寫個c程式解釋吧。include int main p a printf d d n p 1,p 3 return 0 輸出為 10 6 為什麼呢?因為 p a 把 a 陣列的首地址的值放在 p 處,所以p a,p a 0 9 p 1 9 1 10.p 3 就是a陣列的首地址往後移動3位,即p a ...

c語言與易語言什麼區別,C語言與易語言什麼區別

簡單說 易語言是中文 好學 c是英文 不會英語的人很難學 希望採納!什麼是易語言?它和vb c語言 c 等有什麼區別和相同點?答 易語言是中國人自己開發的一種程式語言,是一款全中文程式 的程式語言,和vb c語言 c c 等都屬於同一性質,都是用來開發程式和編寫軟體用的。易語言的核心由c 編寫而成,...