比如定義了指標int p,x p x那p,p,pp各代表的是什麼

2021-03-27 07:39:31 字數 5120 閱讀 1449

1樓:匿名使用者

p是指向int 型別資料的指標,&p是指標p的地址,也就是指向指標的指標,*&p是指標的指標指向的數值.

c語言中,設p是一個指標,*p=&x與p=&x有什麼區別

2樓:匿名使用者

前者是在定義指標時才成立,意思是定義指標p是變數x的地址。後者是程式語句中的取x地址賦值給p。

3樓:聽不清啊

*p=&x是在定義變數時;

p=&x是在定義變數後。

int x,*p=&x;

或:int x,*p; p=&x;

4樓:匿名使用者

兩個語句不可能同時出現,必然有一個是錯誤的。

*p=&x:指的是指標p的」值」是一個指向x的指標;

p=&x:指的是指標p指向x。

設變數定義為「int x, *p=&x;」,則&*p相當於_____。 a、p b、*p c、x d、*&x

5樓:匿名使用者

選擇 a

因為*p是指

du針。當x的地址賦值

zhi個指標p的時候,他dao們的地址就一樣回(數值也是一樣)。

指標的話,要表示數值的答話用用*p,指地址的話,只要p就可以。

如果加地址符號&,那就值該指標的地址(&*p),也就是值x的地址。

abcd中,只有a選項表p的地址(即是x的地址)。

b、c和d都是表值。

希望能幫助你!

有關運算子 p=&x,*p=&x有什麼區別

6樓:重定向的憂傷

我簡單解釋一下

如果p是一個

int型別的指標,x是int型別,p=&x就是p指向x所在的記憶體地址如果p是一個內int指標型別的指標,

容x是int型別,*p=&x就是讓指向的int型別的指標指向x所在的記憶體地址,前提是,你已經為p開闢了空間,不然p指向的記憶體不安全。

如果*p=&x這句話處於一個定義的位置 例如 int *p=&x,那麼就相當於定義了一個int型別的指標p,指向x所在的記憶體地址。 這個時候,*不是取值的意思,而是定義指標的符號。

建議題主好好去看一下c語言的課本,只要搞清楚指標是什麼,取值是什麼,取地址是什麼,這些問題就完全不是問題。

c語言裡面的指標好亂,比如p=&i,我知道是把i的地址給p,則*p指向i。但是又比如int x,*p

7樓:匿名使用者

指標不亂啊,可能copy你被概念迷惑了

p=&baii是把i的地址給p,這就du叫p指向了i,此時*zhip就和

daoi等價了,而不是*p指向i

int x,*p=&x,這裡的*是指標的宣告格式,後面是用&x 去初始化p,或者說與前面的賦值格式p=&x結果完全一致,當然就是p指向x,注意這個宣告指標時的*p不是表示式中使用的*p,表示式中用的*p代表反引用p指向的內容

另外,由於宣告時p前面只有一個*,所以也就是一重指標,後面使用p時前面不能出現兩個*的

8樓:匿名使用者

int *p=&i;,他有2層意思du,意思是聲zhi明p是一個指標變數,然後

daop指向i的地回址。不是你說的*p指向i的地址,*p表示對答i取內容,他還等價於

int*p;//宣告p是一個指標變數

p=&a;//使p指向a的地址

對於你說的**p,這是一個2級指標,例如

int a[3]=;

int *b[3]=;

int **p;//宣告一個2級指標;

p=b; //使p指向這個指標陣列;

p代表&a[0]的地址,*p就是對這個地址取內容 得到 &a[0];所以*p的值就是&[0];而**p就是對(*p)及&a[0]取內容,得到a[0]的內容就是1;

**p二級指標在字串數字與指標陣列用到。。。

9樓:匿名使用者

int x,*p=&x;可以分解成兩句:int x; int *p=&x;

10樓:匿名使用者

不是。int x,*p=&x;這是定義了一個整型x和整型指標,並把x的地址給指標p了………指向x的還是*p

等價於int x;

int *p;

p=&x;

int x[5]; int *p; p=&x[2]; //指標p存放x[2]的地址,相當於p是指向x[2]的指標 *p=50; //相當於設定x[2]

11樓:

首先說復

明,你用了不少「相當於」制,這種bai理解很不妥:duint *p; p=&x[2];就是指標p指向了x[2],不是相當zhi於p是指向x[2]的指標。「*p=10; 怎麼等於10的」——沒有理解你的問意,但它和int a;a=2;是完全一樣的啊,誰又能說清a是怎麼等於2的呢!

p指向了x[2],那就是p指向的

dao目標*p就是x[2],*p=10,就是x[2]=10……

12樓:匿名使用者

int x[5];//定義了一個int型陣列

int *p;//定義了一個指向int型的指標(而且沒有初版始化,野指標一枚)

*p = &x[2];//指標p指向x陣列中索引為權2的那個地方

*p = 50;//對指標p解引用,使得x[2] = 50; *p的意思就是x[2];相當於x[2] = 50

然後你的int *p;//定義一個野指標

p=x;//你這裡註釋錯了,這裡是把x的值當做地址送給指標p;p就指向一個神奇的地方,如果x=10,那麼p指向的就是地址為10這個地方的一個值(一般會出現段錯誤吧)

應該改為 p =&x[0];//才是p指向x[0]

而且你的問題有問題。*p = 10;意思是x[0] = 10;等號左邊是被賦值的物件,等號右邊是值。

a=b的意思就是把b的值賦給a。所以a的值就是b。

13樓:小忍and奏

x只是為一個連續的記憶體塊 x就是就是指標… 你不信你可以輸出p[0]-p[4]完全一樣

14樓:百穀歌度

p=x其實就是p=&x[0]:這個時候*p就是x[0],x[0]=*&x[0],p=&*p。值得注意的是&和*正好是一套相反的東西

c語言,設p為一個指標,*p=x與p=&x有什麼區別?

15樓:聽不清啊

p為一bai個指標的話,*p=x是給已經指du向可用空間的變zhi量賦值用的,它必須dao先讓指標p指向一內個可用的存容

儲空間,然後這個語句就把x中儲存的值複製到p所指向的那個空間。

而p=&x;就是讓p指向一個可用的儲存空間的語句(p指向變數x)。

比方說:

int x=12,y,*p;

p=&x;

*p=x*x; //----這個語句的作用,就相當於x=x*x;是完全一樣的。

若下面還有:

*p=&y; //p指向y了

*p=x;

則執行此語句後變數y的值就是144了(y的值與x相同了)

有定義:int *p,**q,x;如下有p=&x,q=&x,哪個正確?怎樣才是都正確的?

16樓:匿名使用者

p=&x正確,q=&x錯誤,q是二級指標,不能直接指向普通變數,而應該指向一個指標變數,這麼寫就正確:q=&p;

解釋下指標*p p &p的關係

17樓:萬能導師

使用*定義指標,例如char*p;

p是一個字元的指標;

如果在定義時沒有使用100*,那麼取指標指向的記憶體的值;

例如:inta[]=,3,5,7,9{1},*p;

p=一個;

所以乘以p等於1;

& and是地址操作符,例如,& and是變數p的地址;

比如:# include < stdio . h >

main()

{int[]={1,2,3,4,5},*p=;

printf("%d\n」*p);

printf("%d\n,p);

printf("%d\n」);

printf("%d\n」代替);

擴充套件資料:

指標變數可以加或減,比如p++、p+i、p-=i。指標變數的加和減不是簡單地加或減一個整數,而是取決於指標指向的資料型別。

當給一個指標變數賦值時,要把一段資料的地址賦給它,而不是直接賦給一個整數,比如int*p=1000;這是毫無意義的,通常會導致程式在使用過程中崩潰。

確保在使用指標變數之前初始化它,否則您將無法確定指標指向的位置,如果指標指向的記憶體不允許,程式將崩潰。對於當前度不指向的指標,建議使用null。

可以減去兩個指標變數。如果兩個指標變數指向同一個陣列中的一個元素,那麼減法的結果就是兩個指標之間不同元素的個數。

陣列也是有型別的,陣列的名稱表示一組相同型別的資料。當您定義一個陣列,或者與sizeof, &操作符一起使用它時,陣列名稱表示整個陣列,並且表示式中的陣列名稱被轉換為指向陣列的指標。

18樓:冷123波

定義指標時用*,如char *p;

那麼p就是一個指向字元型的指標;

如果*不在定義時用,那就取指標所指向記憶體的值,如int a=,*p;

p=a;

那麼*p就是1;

&是取地址運算子,如&p就是取變數p的地址;

下面這個例子:

#include

main()

,*p=a;

printf("%d\n",*p);

printf("%d\n",p);

printf("%d\n",a);

printf("%d\n",&p);

}輸出結果為:

11245036(各人的電腦可能不相同)

1245036(各人的電腦可能不相同)

1245032(各人的電腦可能不相同)

從結果可以看出,

*p為所指向的地址的值

p為所指向的地址,即a的地址

&p為指標變數p的地址

為什麼定義指標變數時要定義其型別

定義型別才可以確定其佔用內容大小並進行相應的操作,如果是物件指標還可以訪問其成員。雖然所有的指標都只佔四個位元組,但不同型別的變數卻佔不同的位元組數。一般來說,int佔四個位元組,char佔一個位元組.如果定義指標變數不定義型別,那麼它在取 也就是取其中的值的時候,就不知道應該讀取幾個位元組。而定義...

層析方法的效能指標有哪些,如何定義?

1.外觀。檢測卡外殼應平整,無劃傷 開裂 變形及汙漬 試劑外殼上蓋與下蓋應緊密合攏,無明顯間隙 檢測卡外殼上蓋應印有清晰良好的條形碼和標誌。2.寬度。試紙條的寬度應 3.移行速度。液體移行速度應不低於10mm min。4.檢測限。不高於 ng ml。5.準確度。用濃度為 ng ml 30 和 ng ...

divcss中怎麼定義文字的樣式比如楷體

2 在index.html中的標籤中,輸入css body。3 瀏覽器執行index.html頁面,此時文字的樣式被成功定義為楷體。在你要使用字型的層新增 font family 楷體 就可以,如果,覺得麻煩,你可以在你的css面板中,雙擊你要使用字型的層,比如layout,你就可以雙擊layout...