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 長度 所...