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...