p 和 p的區別

2021-07-07 01:32:27 字數 616 閱讀 1750

*p++和*++p的區別

舉例,如清單3: 

[cpp]view plain

copy

#include 

intmain(

void

)  ;  

int*p = arr;  

inta = *p++; 

//等價於a = *(p++); 即a = *p; p = p + 1;

intb = *++p; 

//等價於b = *(++p); 即p = p + 1; b = *p;

printf("a = %d, b = %d\n"

, a, b);  

return

0;  

}  

例子輸出結果: 

[cpp]view plain

copy

a = 1, b = 3  

對於第8行的運算元p而言,*和++的優先順序相同,但根據它們的右結合性可知,在這個表示式裡可認為++的優先順序高於*,即*p++等價於*(p++)。

而對於第10行的運算元p而言,它只有乙個運算子++,所以先計算++p得出結果,然後間接運算。

C語言指標 p 和 p及 p的區別

今天覆習了一下c語言的指標題目,發現在很多 結果題目中都出現了表示式 p p和 p,而這幾個表示式特別容易混淆。那麼通過什麼方式區分他們呢,答案就是運算子優先順序。和 指標訪問運算子 優先順序相同,根據從右往左的結合性,因此等價於 p 又因為後置 是先使用再自加,所以先取值 p,然後再讓p加1.p ...

p 與 p 的區別

p 與 p 的區別 1.int p 2 表示乙個指向一維整型陣列的指標 想想乙個簡單的指標,int q a int a 對於int p 2 a int a 2 只是對 q 的乙個擴充套件,由一維變成了二維。從指標指向的的物件就可以看出。int p 指向陣列,p 指向基本型別 不包括陣列 所以,我們可...

P P和 P的區別

p p和 p三者的區別 假設我們定義乙個指標p。那麼會經常使用到三個符號 1,p 2,p 3,p 初學者經常會感到很迷茫,到底這三個符號表示什麼?我們知道,p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用 p來輸出的話,它將是乙個16進製制數。而p表示此指標指向的記憶體位址中存放的內...