10、C語言之指針
指針
一、地址和指針的概念
在程序中定義一個變量,在編譯時就會給這個變量分配一個內存單元,同時根據變量的類型決定這個內存單元的大小。
內存中每一個字節都有一個編號,就是地址
對每一個變量,它在內存中都有一個存儲位置,這個位置就是該變量的地址,對變量值的存取是通過地址進行的。
在C語言中,這個地址被形象化地稱為“指針”
指針:一個變量的地址
指針變量:存放另一變量地址的變量(即指針)
二、變量的指針和指向變量的指針變量
1、定義一個指針變量
指針變量在使用前必須定義,使其指向特定類型的變量,指針變量存放地址,必須定義為“指針類型”
定義的一般形式:基類型 *指針變量名
基類型:用來指定指針變量可以指向的變量的類型。
將決定指針移動和運算時的移動量
構成:[存儲類型] 數據類型
*:表示該變量為指針類型
註意:
(1)int *p1,*p2;與int *p1,p2;的區別
(2)指針變量名為p1,p2,不是*p1,*p2;
(3)指針變量只能指向定義時所規定類型的變量
(4)指針變量定義後,變量值不確定,應用前必須先賦值
2、進一步理解&與*運算
&:取地址符
含義:取變量的地址
單目運算符
優先級:2
結合性:自右向左
*:指針運算符(“間接訪問運算符”)
含義:去指針所指向變量的內容
單目運算符
優先級:2
結合性:自右向左
兩者的關系:互為逆運算
3、指針變量的初始化
一般形式:[存儲類型] 數據類型 *指針名 = 初始化地址值
eg:int i;
int *p = &i;
三、數組與指針
數組的指針:指數組的起始地址
數組元素的指針:指數組元素的地址
數組的地址-->指針變量,指針變量就指向該數組
引用數組元素
下標法:a[2]
指針法:用指針變量指向所找的數組元素。占內存上,運行速度快
10、C語言之指針