Pa和Pa有什麼區別Pa0和Pa0有什麼區別

2021-03-07 00:31:02 字數 2696 閱讀 1391

1樓:匿名使用者

舉個例子吧:

a是乙個陣列,它在記憶體中的初始位址比如說是0x11111111(簡單假設),且a[0]的值是1,也就是說,記憶體0x11111111中儲存的值是1。

於是,&a[0]=0x11111111,a[0]=1。

int *p;

p=&a[0];

指標p會有乙個自己的記憶體位址,通常占用4個位元組(比如初始位址是0x22222222)。p的值是&a[0],也就是說從0x22222222開始,後面4個位元組中儲存的值是0x11111111。

*p的值就等於p所指向的記憶體位址中儲存的值,也就是a[0]。所以*p等於1。

如果*p=&a[0]的話,很容易出問題。比如說int *p之後,p的初始值可能是0xcccccccc(debug版本)或者0x00000000(release版本)。這個時候,如果你寫一句*p=&a[0]的話,將會把0xcccccccc或者0x00000000記憶體之後4個位元組的值變為0x11111111。

而0xcccccccc和0x00000000記憶體區通常是不可寫的,這樣就會報錯。

2樓:匿名使用者

*p=a[0] //將 a[0]的值賦給到p所指向的位置。

p=&a[0] //將 a[0]的位址賦給p則,如果:

int a[10];

int *p;

*p=a[0]; //1

p=&a[0]; //2

2句恆正確,1句則有可能引發記憶體非法訪問錯誤。

c語言中*p=a[0]與p=a[0]有什麼區別?

3樓:匿名使用者

對於指標來說,

*p = a[0],表示向位址為p的記憶體區域賦值為a[0]。

p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體位址,這樣賦值會丟掉p原來指向的記憶體。

正確給記憶體位址賦值應該使用第一句。

4樓:匿名使用者

這個是指標和變數的區別:

第乙個表示變數p存的是陣列a的位址值,即表示指向陣列a

第二個表示p和陣列a的第乙個元素的值一樣。

5樓:

有啊,*p是個指標,他儲存的是乙個變數的位址。你把a[0]裡的資料賦給他,是儲存在那個變數中,不是在存*p中。另乙個p是個變數,a[0]中的資料時存在p中

例如:int *p;

p=&b;

*p=a[0];

b==a[0] 值是放在b中

另乙個是放在p中 ,不同的

6樓:

都是賦值語句,p的資料型別不同,被賦值的對像不同而已

*p=a[0] ==>賦值對像不是變數p本身,而是它所指向的對像

p=a[0] ==>賦值的對像就是變數p本身

c語言中*p=a[0]與*p=&a[0]有什麼區別?

7樓:gta小雞

*p=a[0],令p所指向位址的內容等於a[0],p是乙個一級指標;

*p=&a[0],令p所指向位址的內容等於a[0]的位址,p是乙個二級指標。

在c語言中,表示式:*p=a[0]與p=a[0]有什麼區別?

8樓:匿名使用者

對於指標來說,

*p = a[0],表示向位址為p的記憶體區域賦值為a[0]。

p = a[0],把變數p的值改為a[0],這個語句正常應用中是錯誤的。變數p的值為記憶體位址,這樣賦值會丟掉p原來指向的記憶體。

正確給記憶體位址賦值應該使用第一句。

c語言陣列中*p=a,與p=&a[0],有什麼區別?跪求!!!

9樓:呆小魚

如果a是陣列,那麼沒區別,都指向陣列第乙個元素

10樓:爭議什麼

乙個指向了a陣列的位址,乙個指向了a[0] 的位址。

#include

void main()

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

printf("\n");}或

#include

void main()

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

printf("\n");}

11樓:匿名使用者

p=&a[0] 等價 p=a;

就是問 *p=a與p=a的區別

*p=a 把a的值送入 p指向的單元;

p=a 把a的值送入 單元 p區別就是 單元與指向的單元是不同的

12樓:匿名使用者

*p=a指將陣列的位址存入位址p的位置,即要知道a陣列位址,請到*p位置找

p=&a[0]為將位址p指向陣列a[0]的位址上

13樓:羊歡

第乙個指標p指向a的位址,第二個p指的是陣列a第乙個數

14樓:匿名使用者

是一樣的, 沒有區別

請教p=a與p=&a[0]區別

15樓:手機使用者

p=a中的a如果是乙個陣列的話,a是乙個首位址, p=&a[0] 同樣是陣列a的首位址。 也就是說a與&a[0]的位址是相同的, 檢視原帖》

c語言裡p a和p a有什麼區別

p a相當於乙個變數,左邊的就是乙個變數位址,右邊的就是乙個變數 c語言中p a和p a的區別,不是都表示指標p指向a嗎 只有在出現類的環境中才可用到,而 則隨時可用。舉個例子有個類 或結構 x當中有整形成員a class x 這時我們宣告該類的乙個物件a,並用你提到的第一句話來將a的位址賦值給指標...

指標裡面p和p有什麼區別,指標p p 和 p p 和 p分別有什麼區別????

p 表示先取出p指向的值,然後p指標再加1,也就是指向的內容變成了下乙個元素 p 表示p指標加1,直接指向下乙個元素,希望對你有幫助 1 y p 等價 y p y的值 p的原值 p的新值 p的原值 x相應的資料型別的長度 2 表示式p 不能看做是變數,p是先賦值,再自加一 我是自學c 這裡前一久學了...

關於指標變數,p和p到底有什麼區別啊

1 內容不同 星號是用來指定變數p是指標,p是乙個變數,其值為另乙個變數的位址,它表示了在記憶體中的乙個位址,即,記憶體位置的直接位址。而 p是所指向位址的值。2 資料型別不同 在程式宣告變數的時候的 只是表明 它是乙個無符號整數,這個整數指向某個記憶體位址,一次訪問sizeof type 長度 所...