指針是C語言的一個特殊的變量,它存儲的數(shù)值被解釋成為內(nèi)存的一個地址。
指針定義的一般形式如下。
數(shù)據(jù)類型 *指針變量名;
例如:
int i,j,k,*i_ptr; //定義整型變量i,j,k和整型指針變量i_ptr。
指針運算包括以下兩種:
(1)取地址運算符。取地址運算符&是單目運算符,其功能是取變量的地址,例如:
i_ptr=&i; //變量i的地址送給指針變量i_ptr
(2)取內(nèi)容運算符。取內(nèi)容運算符“*”是單目運算符,用來表示指針變量所指單元的內(nèi)容,在星號“*”運算符之后跟的必須是指針變量。例如:
j=*i_ptr; //將i_ptr所指的單元的內(nèi)容賦給變量j
可以把數(shù)組的首地址賦予指向數(shù)組的指針變量。例如:
int a[5],*ap;
ap=a; //數(shù)組名表示數(shù)組的首地址,故可賦予指向數(shù)組的指針變量
也可以寫成:
ap=&a[0]; //數(shù)組第一個元素的地址也是整個數(shù)組的首地址,也可賦予指針變量ap
還可以采用初始化賦值的方法:
int a[5],*ap=a;
也可以把字符串的首地址賦予指向字符類型的指針變量。例如:
unsigned char *cp;
cp="Hello World!";
這里應該說明的是,并不是把整個字符串裝入指針變量,而是把存放該字符串的字符數(shù)組的首地址裝入指針變量。
對于指向數(shù)組的指針變量,可以進行加減運算,例如:
cp--; //cp指向上一個數(shù)組元素
ap++; //ap指向下一個數(shù)組元素
例如:定義了指針類型的形式參數(shù)如下:
uchar *str;
該形式參數(shù)表示一個無符號字符型變量的地址。可以采用以下賦值語句:
SBUF=*(str+k); //將單元地址為str+k的內(nèi)容賦給專用寄存器SBUF,啟動發(fā)送
在調(diào)用該函數(shù)時,直接把數(shù)組trdata[]的數(shù)組名作為實際參數(shù)代入即可,因為數(shù)組名表示數(shù)組的首地址,故可直接賦予指向數(shù)組的指針變量。
-
C語言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140526 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71032
發(fā)布評論請先 登錄
新概念51單片機C語言教程入門、提高、開發(fā)、拓展全攻略
全套C語言培訓資料—PPT課件
指針被釋放后就變成了空指針嗎
C語言指針運算符詳解
把esp8266加入到c51單片機單通道程序怎么寫
電流計指針偏轉(zhuǎn)方向是正極還是負極
C語言指針詳細解析
面試常考+1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

評論