求c 大神!告訴我區別求詳細!定義指標int p p a,p ap ap

2021-03-27 07:39:31 字數 5638 閱讀 5069

1樓:唐門小七

int * p 表示定義一個指標

p=a 說明a本身是一個地址,或者stringp=&a a是一個變數,&表示取a的地址,p是指標,指標指向地址*p=a a是一個變數,*p表示p所指向的地址的內容,這是一個賦值語句,把a賦值給p所指向的地址儲存的變數

*p=&a 表示p指向的地址儲存的值是a的地址...不建議使用...

2樓:匿名使用者

int *p

p=a, // 將a的值當做地址號賦值給指標p。指標p指向a內值得地址號上,例如: a=235;指標p指向235地址上的值。

p=&a,// 指標p指向變數a,一般正常使用。指標p指向變數a的地址。

*p=a, // 同上,也是正常使用,將指標p指向變數a,指標p內是變數a的地址,指標p指向地址上儲存的值為a的值。

*p=&a,//意思是,將指標p指向一個地址,地址上的資料為 a地址數。但是地址數這個數字儲存的地址是多少不知道,所以這句編譯會出錯。應用程式錯誤:

「0x000.。」指令引用「0x00.0000000000」記憶體。

改記憶體不能為「 written」。嚴格點的編譯器會報錯不讓執行。就像:

*p=8,在沒有給p指標指向任何地址的情況下修改指標地址上的值。

c++,請問*p=&a與p=&a(p是指標)有什麼區別

3樓:匿名使用者

p=&a容易理解,就是把變數a的地址存在指標p。*p=&a是把變數a的地址存放在指標p所指向的記憶體單元

4樓:匿名使用者

打個比方

int a = 1000;

int * p;

假設a存放於記憶體中的22222這個地址,那麼*p=&a相當於i=22222,而p=&a相當於使p指標指向a

5樓:匿名使用者

第一個是p指向的記憶體單元存上a的地址,第二句是p的值是a的地址

p是指標變數,*p=a和p=&a的區別

6樓:

1*p=a; //表示將a的值賦給p所指單元。

p=&a; //表示將p指向a單元,即將a單元的地址賦給p。

2int a,b;

int *pa,*pb;

a=10;b=20;

*pa=a;*pb=b; //這兩個語句有問題。pa,pb是野指標,沒有指向任何單元。

printf("%d,%d\n",*pa,*pb);

printf("%x,%x\n",pa,pb); //pa,pb的野指標,其值不確定。

printf("%x,%x\n",&a,&b); //輸出a,b的地址。

7樓:金色潛鳥

分清是語句裡還是宣告裡。

宣告 裡 int *p=a; 宣告 *p 是 int 型指標,初始化,讓 p 指向 a [陣列] 的始地址。

宣告 裡 int p=&a; 宣告 p 是 int型變數,不是指標,初始化,把變數 a 的地址 &a 賦給 p.

語句裡,若 p 是指標變數,

*p=a; *p 表示 值,把 變數 a 的當前值 賦給 指標。(指標指向的地址不變)。

p = &a; p 表示指向的地址, 把 變數 a 的地址 &a 賦給 p, 也就是讓指標指向 變數 a。

例如:int a=2, b=3;

int *p=&b; // 指標指向地址 初始化, 指向 b

printf("address: %p value:%d\n", p, *p); //輸出地址同 b, 數值 3

*p=a;

printf("address: %p value:%d\n", p, *p); //輸出地址同 b, 數值 2

p= &a;

printf("address: %p value:%d\n", p, *p); //輸出地址同 a, 數值 2

---------------------

8樓:匿名使用者

這段**在一些編譯器是編譯不過的,因為你沒有給pa,pb賦值,pa,pb兩個指標指向**,根本不知道

*p=a 和 p=&a是完全不同的兩碼事

*p 是 p 指向的地址的值,改變了值不是改變了它的地址,而p=&a就是改變p所指向的地址,使之指向a

舉個例子說明一下

p=&a; //p儲存的是a的地址

*p=b; //並不是p儲存了b的地址,而是將b的值儲存到p所指向的地址的那個值,這句相當於a=b,最後改變了a的值,而非p所指向的地址

9樓:匿名使用者

最關鍵的錯誤在pa和pb這兩個指標沒有初始化,

當執行*pa=a;*pb=b;時結果不可預期, 很可能程式應崩潰掉的.

10樓:匿名使用者

區別很明顯,*pa=a,*pb=b只是說記憶體pa位置存放的值是等於a並不是pa指向變數a的地址單元,因此輸出的地址是不一樣的。

在c語言中,int *p,a; *p=&a,和p=&a有什麼區別?

11樓:天雨下凡

這樣問說明你對指標的概念還不清楚,以下兩種方式等價:

一、先宣告指標,再給指標賦值

int *p,a;

p=&a;

二、定義指標的同時給它賦值

int a,*p=&a; //這裡的*p可以解釋成int * p,int *表示p是指向int型變數的指標

12樓:匿名使用者

#include

int main()

{int *p,a=0xaa; //宣告 int指標

*p=&a,*p=a和p=&a各是什麼意思,有什麼區別?

13樓:匿名使用者

表示式的意思:

1、*p=a的意思:將a的值賦給p指標指向的地址的值;

2、p=&a的意思是:將a的地址賦給指標p;

3、*p=&a的用法錯誤。

區別在於:

p=&a就是用a的地址對p賦值,a是一個變數,&a就是儲存這個變數的記憶體地址,指標儲存的就是一個地址,*p就是這一地址中的內容。

擴充套件資料另類*和&

兩個地方要注意: 在程式宣告變數的時候的*,只是表明「它是一個無符號整數,這個整數指向某個記憶體地址,一次訪問sizeof(type)長度」。這點不要和(*)操作符混淆;

在c++程式宣告變數的時候的&,只是表明「它是一個引用,這個引用宣告時不開闢新空間,它在記憶體分配表加入新的一行,該行記憶體地址等於和呼叫時傳入的對應引數記憶體地址」。

這點不要和(*)宣告符,(&)操作符混淆。

14樓:匿名使用者

1.一般來說*p=&a的表示方法是錯的,*p=a和p=&a是正確的。

2.*p=a的意思:將a的值賦給p指標指向的地址的值;

3.p=&a的意思是:將a的地址賦給指標p;

4.區別:*p是一個值;p是一個地址;兩者完全不相同。

5.*代表著p指向的地址的值,簡單來說就是取值;&是取地址符號,取的是地址;p是指標,可以理解為所指向的值的地址,*p就是取p指標指向的地址的值,&a就是取a的地址。

15樓:匿名使用者

*是解引用運算子 &是取地址運算子

16樓:小小小子

int *p=&a;

和int *p;pa=&a;等價

這裡的*是一個指標說明符,不是間接定址運算子,我剛好看到這一點分享一下,前面幾個人都說這種是錯誤的,估計理解錯了吧

17樓:千古1帝劉公嗣

直接看**執行結果就

清楚了。

#include

int main()

18樓:匿名使用者

這個問題如下所述:

int b=5;a=10;// 定義變數a,並賦值為10;b=5

int *p=&b; //定義指標變數p,並且讓指標p指向變數b,其中 & 為

//取地址運算子

*p=a; //是將a的值就是10存放到指標p指向的變數b,這樣b的值不再是

// b=5,而是變成b=10

p=&a;// 這句是改變p 的指向,讓p指向變數a。例如還有下面的語句

*p=123; //那麼這樣後就會有p指向的變數的值為123.此處是a=123.

19樓:匿名使用者

& 取地址符 值相當與指標

* 取對應地址字元 型別與該地址所儲存的變數型別一樣

20樓:匿名使用者

*p=a是p取a值

而p=&a是取a 的記憶體地址

21樓:匿名使用者

第一個&是指引用吧,*p=&a意思是p所指的值為a的引用

c語言中int*p=a與int*p=&a有什麼區別???求大俠幫忙!!!

22樓:匿名使用者

區別很大。第一個int *p = a;這是把a給一個指標,一般a是指標或陣列,否則可能會造成很大錯誤。

int *p = &a;這是把a的地址給p,一般a可以是一個整型變數。

23樓:匿名使用者

因為p為指標變數,它初始化的值只能為地址,例如:

int b[10],a;

int *p1=b,*p2=&a; //這兩種賦值都可以,注意,a,b都是地址,b是陣列名,為陣列的首地址,

若如下定義就是錯誤的:

int *p3=a;//a是簡單變數,不是地址,而是值,型別不匹配,所以錯了

24樓:步行者

int*p=a,首先a是一個指標,然後定義一個int型指標p,指向a

int*p=&a ,首先a是一個數值(比如之前定義它 int a=100),那麼在定一個指標p,指向a=100中a的記憶體地址

注意兩個式子放在一塊寫是錯誤的。不可能定義a為指標,又為數值

25樓:匿名使用者

int *p是定義一個指標 對應的該是地址

int*p=&a 則a是個指標或陣列

int*p=&a 則a是個資料

26樓:匿名使用者

區別很大,第一個是把a賦給指標變數p,a變數必須存放的是指標值;第二條語句是把a變更本身的記憶體地址拿出來,賦值給指標變數p。

27樓:

a的型別不一樣,第一個要指標型別的int變數,第二個是普通變數

28樓:匿名使用者

第一個a必須也是指標才能對吧,第二個指向了a的地址。

29樓:浦小雨漆娜

*p=&a;是將a的地址賦值給*p,結果會是一個十六進位制的數。

第二個是讓p指向a的地址空間。*p的傎和a相等。

inta=2,*p;

*p=&a;

列印*p應該是一個地址值,很長一串,

p=&a;

打*p印結果會是2;

求大神告訴我這些肉肉的名字,求大神告訴我我的多肉的名字分別是什麼,一下子買多了,分別不出來了

冬美人,觀音蓮,青星美人 第二個徒長了 請判斷確認一下 求大神告訴我這些肉肉的名字 第一個,女雛 第二個,觀音蓮,我也養過就成這樣的 第三個,天使之淚 第一株女雛,第二株紫羊絨,第三株天使之淚 求大神告訴我我的多肉的名字分別是什麼,一下子買多了,分別不出來了?這個太多了,而且太小了,我們看到頭昏腦漲...

求大神,告訴我這是什麼動漫的,求大神告訴我這是什麼動漫

畫師 來 2日目 44a 源 pepepe 是原bai創人物 不是動漫此係列的du人物一zhi共有2個 此人物是人物黃 dao 屁呂尾田 shimotsuki potofu 人物紅 醬 hazuki watora 人物黃表情 danbooru.donmai.us posts 951630?tags ...

這個是啥呀,求大神告訴我,求大神告訴我這句話是什麼意思?

這個感覺你截圖這個看了一下是遊戲的一個截圖,到底是啥意思我也搞不懂,因為對英語不是太懂。遊戲名字lacosalba 求大神告訴我這句話是什麼意思?你到底要問哪句話的意。是求大神告訴我這句話是什麼意思嗎。那我幫你解答下 求是客氣語,需要幫助意思,大神是厲害的意思。告訴你應該知道的。好了,我字碼夠了,後...