就是儲存位址的變數
int i;
int* p =
&i;int
* p,q;
int*p,q; 注意*號可以靠近int也可以靠近p,表達的意思一樣都是,p是指標變數,q是int型別,沒有int
*型別
普通變數的值是是實際的值
指標變數的值是具有實際值的變數的位址
voidf(
int*p)
;在被呼叫的時候得到了某個變數的位址;
int i =0;
f(&i);
在函式裡面可以通過這個指標訪問外面的i;
#include
voidf(
int*p)
;int
main
(void
)voidf(
int*p)
&i =
0xbff17d70
p =0xbff17d70
兩者輸出一樣
*是乙個單目運算子,用來訪問指標的值所表示的位址上的變數
可以做右值也可以做左值
int k =
*p;*p = k +1;
#include
voidf(
int*p)
;int
main
(void
)voidf(
int*p)
輸出&i=
0x100000
p =0x100000
*p =
6i =
26//可以看到i的值改變了
為什麼
int i;
scanf
("%d"
,i);
編譯沒有錯
因為i和&i都是int 型別,
指標變數與變數位址
一 基本概念 儲存單元一般應具有儲存 資料和讀寫資料的功能,以8位二進位製作為乙個儲存單元,也就是乙個位元組。每個單元有乙個位址,是乙個整數 編碼,可以表示為 二進位制整數。程式中的變數和主儲存器的儲存單元相對應。變數的名字對應著儲存單元的位址,變數內容對應著 單元所儲存的資料。儲存位址一般用十六進...
變數的位址和指標
一 變數的位址和指標 計算機中有乙個硬體叫做記憶體條,當我提起這個硬體的時候往往都會說多大的。1g 2g 4g 這都是在說它的空間小,計算機中的記憶體都是以位元組為單位的一片連續的記憶體空間,每乙個位元組都有乙個編號,這個編號就稱為記憶體位址,如同旅館的房間一樣,單人間 雙人間等等,每個房間都有自己...
給指標變數賦值位址
1 給指標變數賦值 乙個指標變數可以可以通過不同的方式獲得乙個確定的位址值,從而指向乙個具體的物件 每當乙個指標中存放了乙個變數的位址的時候,我們就說這個指標指向了這個變數 int k 1,q,p q k 這時可以說,q指向了變數k q k 1 q k 1 這是錯誤的,指標q就是用來存放位址的,前面...