intp 和int p有什麼區別呀

2021-03-10 18:13:11 字數 5493 閱讀 4904

1樓:好紅客

int p[3] 是定義了一個整型陣列 p ,陣列大小為 3

int (*p)[3] 是定義了一個陣列指標 p ,用於指向一個大小為 3 的整型陣列

還有疑惑,可以 hi 我!

2樓:匿名使用者

變數申明的組copy成結構:

型別 變數名

首先這兩bai個變du量申明都是一個長度為3的陣列的:zhi[3] 相同點刨除不看dao,下面看不同點:

前者的型別為 int (*) 變數名為p

後者的型別為 int 變數名為p

很明顯,差異在於:前者申明的是一個int型的指標,而後者申明的是int型整數

3樓:匿名使用者

我覺bai

得不肯能出現這種情況首

du先有括號所以先執行zhi*p,表明p是個指dao針變數,而int p[3]p是個專陣列名,陣列名是屬個地址常量,所以這兩個不肯能出現在一起的,這就好比兩個不同程式裡只因為識別符號相同就相互比較,比較起來有什麼意義嗎?

4樓:匿名使用者

int a[3]

int (*p)[3]

那麼可以 p=a來操作a

a是陣列,p是陣列指標

const int *p和int * const p的區別

5樓:育知同創教育

const int *p和int * const p的區別如下:

const int *p表明指向的物件是const型,不可以修改,但是指標p的指向可以修改。

* const p表明指標變數p是const型,它的指向不可修改,但是指向的物件可以修改。

一般來說用*限定的是指標區域存放的內容,不用*的是記憶體地址。

6樓:刀無極啊

你可以看看這篇文章,講的很仔細

「int **p」和「int *p」有什麼區別?

7樓:怕不他啊不了

int *p表示的是一級指標,表示p所指向的地址裡面存放的是一個int型別的值。

int **p表示的是二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標。

一級指標存放變數的地址,指向的值是變數的內容。如int* p=, p=陣列的首地址,*p=陣列的第一個值;

二級指標存放一級指標的地址,指向一級指標。如int*p =, int**pp=&p,pp=指標p的首地址,*pp=陣列的首地址,**pp=陣列第一個值1。

指標陣列的陣列名傳遞引數對應為指標的指標即二級指標,二維陣列的陣列名傳遞引數對應為陣列指標即指向一維陣列的指標

一級指標通過形參,可以修改實參中指標所指向的地址中的值。修改不了實參中指標所指向的地址。需要藉助二級指標才可以。

8樓:尉詩桃牟畫

int*p

:一級指標,表示p所指向的地址裡面存放的是一個int型別的值int**p

:二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標(即p指向的地址裡面存放的是一個指向int的一級指標)

例如:int

i=10;

//定義了一個整型變數

int*p=&i;

//定義了一個指標指向這個變數

int**p1=&p;

//定義了一個二級指標指向p指標

那麼取出10的值方式為:

printf("i=[%d]\n",*p);

printf("i=[%d]\n",**p1);

int *p[3]和int(*p)[3]的區別

9樓:匿名使用者

int *p[3]這個叫指標

陣列,本質上是一個陣列,陣列元素型別是指向int型的指標

int (*p)[3]這個叫陣列指標,本質上是一個指標,指標指向的是一個有3個int型元素的一維陣列

對於這種問題最簡單的方法是結合運算子優先順序/結合性,先確定定義的本質是什麼,然後再由內向外一層層理解

例如

int *p[3] ,有運算子優先順序/結合性可知,等效於int *(p[3]),那麼首先可以確定,p的本質是一個有3個元素的陣列,那麼陣列元素的型別是什麼呢,往外看可知,為指標型別,那麼指標指向的型別又是什麼呢,再往外看,可知為int,所以最後整理下就可以知道p是一個有三個元素的陣列,該陣列元素型別為指向int的指標

int (*p)[3]同理

10樓:倒黴熊

int *p[3] p是一個陣列,此陣列有3個元素,每個元素都是int*型別,也就是指向整型資料的指標型別。

int a=10,b=20,c=30;

int*p[3]=;

而int(*p)[3]中的p是一個指向陣列的指標,也就是說它指向的不是一個數,而是一個陣列, p是指標,指向[3]個大小的陣列···如 int a[2][3]; int (*p)[3]; p=a;

11樓:tea醬醬

int *p[3]是一個陣列 其中有三個元素 元素是指標

int(*p)[3] 是一個指標 該指標指向一個存有3個整形的陣列

c++中int *p[3]和int (*p)[3]有什麼區別

12樓:無聊的

int *p[3]是定義了一個名為p的陣列,裡面有三個型別為int*的元素。

也就是p[0],p[1],p[2]分別儲存了一個int*;

而int (*p)[3]是定義了一個指向有三個元素的int型別陣列的指標,比如說

int a[3];

int (*p)[3]=&a;

那麼(*p)[0]就是a[0]

int a[2][3];int * p=a與int a[2][3]; int (*p)[3]=a;的區別

13樓:匿名使用者

int (*p)[3]是陣列指標,指向有三個元素的陣列 p => a[0]地址 p++ => a[1]地址

int *p是整形指標 p => a[0][0]地址 p++ => a[0][1]地址

所以,p每次移動的地址大小是不同的

int **p和int *p有什麼區別

14樓:怕不他啊不了

int *p表示的

是一級指標,表示p所指向的地址裡面存放的是一個int型別的值。

int **p表示的是二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標。

一級指標存放變數的地址,指向的值是變數的內容。如int* p=, p=陣列的首地址,*p=陣列的第一個值;

二級指標存放一級指標的地址,指向一級指標。如int*p =, int**pp=&p,pp=指標p的首地址,*pp=陣列的首地址,**pp=陣列第一個值1。

指標陣列的陣列名傳遞引數對應為指標的指標即二級指標,二維陣列的陣列名傳遞引數對應為陣列指標即指向一維陣列的指標

一級指標通過形參,可以修改實參中指標所指向的地址中的值。修改不了實參中指標所指向的地址。需要藉助二級指標才可以。

15樓:匿名使用者

int *p :一級指標,表示p所指向的地址裡面存放的是一個int型別的值

int **p :二級指標,表示p所指向的地址裡面存放的是一個指向int型別的指標(即p指向的地址裡面存放的是一個指向int的一級指標)

例如:int i=10; //定義了一個整型變數int *p=&i; //定義了一個指標指向這個變數int **p1=&p; //定義了一個二級指標指向p指標那麼取出10的值方式為:

printf("i=[%d]\n",*p);

printf("i=[%d]\n",**p1);

16樓:匿名使用者

int (*p)(); //函式指標,這個指標可以指向不同的函式,但是必要條件是引數與返回值都為void型

若定義了一個這樣的函式: int fun();

則這樣賦值: int (*p)() = fun;

再這樣呼叫: p();

int *p(int x,int y) //指標函式,是個函式引數為兩個int變數,它的返回值是一個int的指標

若定義了一個這樣的函式: int *p(int x,int y);

則這樣賦值: int *ptr = p(4, 5);

17樓:匿名使用者

int (*p)()是一個int型別的無引數的函式指標,它指向的是一個函式,它是用來存放無形參函式**首地址的變數,也就是說在賦值的時候給p一定要賦一個函式;而int *p(int x,int y)是一個返回值為int型的簡單的帶有兩個形參的指標函式,和普通函式不同的是它是一個指標函式。簡單說前者是一個變數,而後者是一個函式!

18樓:hello你個

int *p是一級指標,表示p指向的記憶體中存放的是一個真型變數,int **p是二級指標,表示p指向的記憶體種存放的是一個整形的指標變數

19樓:匿名使用者

本質上沒有區別,但字面理解容易模糊。比如

int *p,i;// 很明顯,p是指標,i是變數int* p,i; // *緊挨著int,那麼*屬於p還是屬於p和i呢?(當然不是),還是屬於p,但看上去不是那麼清晰。

所以推薦的是int *p,i;,而不是int* p,i;。

20樓:匿名使用者

胡說,誰說的int *p(int x,int y)是一個返回值為int型的簡單的帶有兩個形參的指標函式?這分明是以個返回型別為整型指標(int*)的一個帶有兩個整型引數的普通函式。您這麼理解int* p(int x,int y)就好理解了。

21樓:匿名使用者

int (*p)() 是定義一個儲存某類函式(int fun())入口地址的指標.

int *p(int x,int y) 是宣告一個返回整型指標的函式(p).

22樓:匿名使用者

int (*p)(int)是函式指標,如:

int func(int x); /* 宣告一個函式 */int (*f) (int x); /* 宣告一個函式指標 */f=func; /* 將func函式的首地址賦給指標f */int* p(int x);是一個返回值為int型指標的函式的宣告

23樓:匿名使用者

int **p指向的是一個指向int型的指標陣列

int *p指向的是一個int型資料望採納

在c 中,int p和int p有什麼區別

風若遠去何人留 int p為引用,而int p為定義變數。二者區別如下 1 引用在定義的時候必須賦值,否則編譯會出錯。正確的形式為int p a 其中a為int型變數。2 引用在定義時不會分配空間,只是初始化變數的一個別名。如int p a 的形式,後續對p的操作,與對a操作完全等價。 一個為指標形...

津貼和補貼的區別,津貼與補貼有什麼區別呀?

您好 看了您的問題作如下答覆 補貼則是用人單位因工作需要造成員工額外支出的一種補償形式。包括交通費,誤餐,通訊,差旅費等等。而津貼是國家對黨政機關工作人員和有突出貢獻人員的一種職務補貼。希望我的回答可以幫助到您,滿意求接受 回答您好,我仔細分析一下您的問題,請耐心等待,您也可以詳細描述一下您的問題,...

影象和圖象有什麼區別呀圖片和影象的區別是什麼?

一 概念不同 1 圖象是畫成,攝製或印製的形象,注重的是形象的錶針。2 影象是客觀物件的一種相似性的 生動性的描述或寫真,是人類社會活動中最常用的資訊載體。二 用途不同 1 圖象常常應用在數學領域,用來表示圖形 點 線 面 座標等空間概念,是現實物體在數學領域的抽象表示。2 影象則比較多用在攝影 影...