三、* 和 & 小結
四、指標變數的運算
指標變數:存放指標的變數,本質上是乙個整數。
指標所指向的值,可以是任何型別資料,如陣列、字串、函式或普通變數、指標變數。
定義指標變數與定義普通變數非常類似,不過要在變數名前面加星號*
datatype *name;
或者
datatype *name = value;
*
表示這是乙個指標變數,表示該指標變數所指向的資料的型別 。
int
*p1;
p1 是乙個指向 int 型別資料的指標變數,至於 p1 究竟指向哪乙份資料,由賦予它的值決定。再如:
int a =
100;
int*p_a =
&a;
和普通變數一樣,指標變數也可以被多次寫入。隨時都能夠改變指標變數的值。
//定義普通變數
float a =
99.5
, b =
10.6
;char c =
'@', d =
'#';
//定義指標變數
float
*p1 =
&a;char
*p2 =
&c;//修改指標變數的值
p1 =
&b;p2 =
&d;
指標變數也可以連續定義,注意每個變數前面都要帶*
int
*a,*b,
*c;//a、b、c 的型別都是 int*
*pointer;
使用
#include
intmain()
int a =
15, b =
99, c =
222;
int*p =
&a;//定義指標變數
*p = b;
// 通過指標變數修改記憶體上的資料,將 b的值付給了 p 指向位址的值,顧 a = 99
c =*p;//通過指標變數獲取記憶體上的資料
printf
("%d, %d, %d, %d\n"
, a, b, c,
*p);
// 99, 99, 99, 99
*p
代表的是 a 中的資料,它等價於 a,可以將另外的乙份資料賦值給它,也可以將它賦值給另外的乙個變數。
int
*p;p =
&a;// p 前面就不能加*。
*p =
100;
指標變數加減運算的結果跟 資料型別的長度有關
#include
intmain()
else
return0;
}
&a=
0x28ff44
,&b=
0x28ff30
,&c=
0x28ff2b
pa=0x28ff44
, pb=
0x28ff30
, pc=
0x28ff2b
pa=0x28ff48
, pb=
0x28ff38
, pc=
0x28ff2c
pa=0x28ff40
, pb=
0x28ff28
, pc=
0x28ff2a
2686784
比較的是資料的位址
不能對指標變數進行乘法、除法、取餘等其他運算,除了會發生語法錯誤,也沒有實際的含義。
c語言指標 指標和指標變數
指標是c語言中乙個重要的概念,也是c語言的重要角色。可以說指標是c的精華所在,學習指標雖然不易,但是只要肯花上時間去反覆的理解和實踐,就一定可以很好的掌握它。一 指標是什麼 指標到底是什麼?我們先舉乙個例子。假設我們在火車站 附近開了一家賓館,這家賓館有三千多間屋子,為了方便管理,我們給每個房間都加...
c 指標變數
指標是c語言的精華部分,通過利用指標,我們能很好地利用記憶體資源,使其發揮最大的效率。有了指標技術,我們可以描述複雜的資料結構,對字串的處理可以更靈活,對陣列的處理更方便,使程式的書寫簡潔,高效,清爽。但由於指針對初學者來說,難於理解和掌 握,需要一定的計算機硬體的知識做基礎,這就需要多做多練,多上...
C 指標變數
a detailed introduction to c pointer variable,maybe helpful guderian出品 想獲得更佳閱讀體驗?戳 對指標變數的型別說明,一般形式為 型別說明符 變數名 其中,表示這是乙個指標變數,變數名即為定義的指標變數名,型別說明符表示該指標變數...