C語言中的intp的理解,int p 怎麼理解啊??

2022-06-17 12:41:42 字數 3931 閱讀 1509

1樓:鬼鬥魔君

如果要連續定義兩個指標應該是怎樣做呢?

如果是第一種理解,則為:

int* p,q;

但是測試結果,p是int指標,而q是int型別,不是指標。

所以第一種理解錯誤,實際上要連續定義兩個指標必須:

int *p,*q;

所以這樣看第二種理解更靠譜一些,雖然我感覺還是有些牽強,因為這句「而&*p為對p取地址,&和*抵消了」

在使用p的時候是不需要用&的

2樓:匿名使用者

int *p 字面理解 整型的指標p, 指標本身只有4位元組的大小,它負責 在程式需要某塊值的將程式引導到那個位置。

想想p &p &*p的區別, 先不要賦值列印一下,然後賦值列印一下,你就明白了。

自己試下~~

3樓:挖金剛

int* 為型別,就像你定義一個結構體,然後可以定義結構體型別的變數一樣,但是像這種複合型的型別,是不能夠同時定義多個的,比如int* a,b的話就只有a是一個地址變數,而b是整形變數 ,需要int* a,*b方可。

4樓:匿名使用者

不行 p是一個存 int 型的指標 變數 ,p 首先是變數,*p 是那個你要存的int 型的值,&*p

為那你要 若 有一個int型的變數

5樓:閃閃紅紅星

1.p只是一個變數名字,它的型別是int *,32位機器上它佔用4個位元組,它的值是一個地址。

2.正確。

int *(&p) 怎麼理解啊??

6樓:聶蘭英檀溪

int*p[10]

10個指向int型別的

指標int

(*p)[10]

指向一個有10個int成員的陣列。

int(*p)(int)

指向一個形參表為1個int型別,返回值為int的函式指標

int(*p[10])(int)

定義一個指標陣列,陣列中每個成員均是

int(*p)(int)的指標

7樓:匿名使用者

指標變數的引用

如果瞭解引用的概念就好辦了

引用就是給變數起個別名

這種變數必須初始化

如int *a = &b;

int *(&p) = a;

8樓:唐三百

如int *a = &b;

int *(&p) = a;

p不佔用記憶體,它只是a的別名,就像一個人兩個名字而已。

所以p指標所指向的內容與a指標所指向的內容相同,即*a == *p;

p在記憶體中存放的地址與a在記憶體中存放的地址相同,即 &p == &a。

9樓:故事還長

int *(&p)是指標變數的引用。 指標變數同普通變數一樣,使用之前不僅要定義說明,而且必須賦予具體的值。未經賦值的指標變數不能使用,否則將造成系統混亂,甚至宕機。

指標變數的賦值只能賦予地址,決不能賦予任何其它資料,否則將引起錯誤。

引用就是給變數起個別名 ,這種變數必須初始化 。

如int *a = &b; int *(&p) = a;

p不佔用記憶體,它只是a的別名,就像一個人兩個名字而已。 所以p指標所指向的內容與a指標所指向的內容相同,即*a == *p;

p在記憶體中存放的地址與a在記憶體中存放的地址相同,即 &p == &a。

10樓:匿名使用者

指標變數的引用。 指標變數同普通變數一樣,使用之前不僅要定義說明,而且必須賦予具體的值。未經賦值的指標變數不能使用,否則將造成系統混亂,甚至宕機。

指標變數的賦值只能賦予地址,決不能賦予任何其它資料,否則將引起錯誤。

引用就是給變數起個別名 ,這種變數必須初始化 ,、如int *a = &b; int *(&p) = a;

p不佔用記憶體,它只是a的別名,就像一個人兩個名字而已。 所以p指標所指向的內容與a指標所指向的內容相同,即*a == *p;

p在記憶體中存放的地址與a在記憶體中存放的地址相同,即 &p == &a。

11樓:so海綿寶寶

對比下引用的格式:資料型別 &別名 = 原名

就很好理解了

c語言中有這樣一個定義:int **p;問一下這個p是定義的什麼變數?

12樓:聽不清啊

這個p是定義的二級指標變數,即「指向指標的指標」。

13樓:匿名使用者

給你舉個例子,就明顯了。

int i=0;

int *q;

int **p;

q=&i;

p=&q;

雙指標就相當於指向指標的指標

14樓:夫人的老公

int *p寫成int* p要好理解一點。p是一個整型指標,也就是指向的資料是一個整型。

int** p,p是一個指標,還有一個指標指向整型,然後把p指向這個指向整型的指標,所以它就是指向指標的指標,所存資料是一個整型

15樓:匿名使用者

指向【指向int型別的指標】的指標

16樓:扯星小王子

這個p是個指標變數,他儲存了一個變數的地址的儲存地址,也就是儲存了一個星花變數的地址

c語言中,*p=9和int * p=9有什麼區別,兩者分別是什麼意思 5

17樓:匿名使用者

p是整型資料指標,可以存放一個地址指向一個整型資料存放區

*p=9;的前提是,變數p已經存放一個有效地址,這個地址可以存放整型資料,這句話的功能就是,令這個地址指向的儲存區中存放整型資料9

int *p=9;相當於int *p; p=9;意思是給變數p賦值,賦值的是一個地址,這個地址是9,因此可存放資料的區域地址為9,其中可存放任意整數。

18樓:

*p=9;——如果p是已經宣告確定了指向的有效指標,則它的意義是將常數9賦給p指向的目標,否則是錯誤表示式。

int * p=9;——這是錯誤表示式,編譯都不會過的。因為指標不能用非0常數初始化。

19樓:忙碌小學生

int* p=9從語法上來說是錯誤的,這是一個宣告變數的語句,生命的變數為指標變數,指標變數的內容為地址,其他的變數的地址

9不是地址

*p=9;p已經被宣告後,*號值的是地址的值比如p記憶體有一個地址,這個地址的內容為123那麼*p就是123,或者用*p=9來改變這個123,變成9你可以這樣理解 int* 才是一種變數型別,是指標變數的型別,*和p之間用空格隔開

p是指標變數的內容,存著地址

*p是這個地址儲存的內容

20樓:戶哲茂

int *p=9;

轉化一下就是

int *p;

p=9;

//這個9就是地址變數了

而*p = 9;的9就是一個普通變數的值

21樓:

這就是腦筋急轉彎題目

*p(int

*p)一個返回指標的函式p,形參是一個int型指標(*p)(int

*p)一個指向函式的指標p,所指向的函式的形參為int型指標

c語言裡int * p和 *p 是什麼關係?int *p是整數指標變數 *p是什麼

22樓:

最怕是指標了,*p是取p的值。

23樓:我是蟑太狼

指標很難,你可以在網上搜一下最基礎的frist float三大語句迴圈,這是最基本的

C語言中intp與intp的區別

經過兩天的上機試驗和自己的推理,我要感謝的是dukehhh同志,我是沿著你的想法推理下去的,你的想法是正確的,而且我還幫你進行了補充 int p 是一個指標變數,與之相對應的是int p n int p 4 是指向一個2維陣列的指標,與之相對應的是int p 4 int p 是指向一個指標的指標 與...

c語言中有符號型別的int範圍,C語言中 有符號型別的int範圍( 128 127)是怎麼求出來的,特別是 128 怎麼理解 負數用二進位制怎麼表示

恩!首先要指出你的一個錯誤!int的範圍不是 128 127 這個是char的範圍,範圍的大小是由型別所佔有的位元組來決定的。如此所示 char是一個位元組8bit,那麼在二進位制中,8bit最大值是255,最小值是0 在是在無符號時 如果是有符號的話.那麼就還有一位是符號為,最高位是符號為。例如 ...

C語言關於int變成float,C語言中如何實現將一個浮點數float轉成int型別?

定義的資料型別不一樣!int和float的資料寬度都不一樣!要麼就強制轉換!但是強制轉換也會出錯!因為int不能強制轉換成float float的位寬比int長 程式裡你定義a是整型,輸出的卻是浮點型,相矛盾 我藉助csdn上一文章告訴 你 printf不會關心你輸入的引數的型別,你輸入的實際是 p...