指針是C語言的一個(gè)特殊的變量,它存儲(chǔ)的數(shù)值被解釋成為內(nèi)存的一個(gè)地址。
指針定義的一般形式如下。
數(shù)據(jù)類型 *指針變量名;
例如:
int i,j,k,*i_ptr; //定義整型變量i,j,k和整型指針變量i_ptr。
指針運(yùn)算包括以下兩種:
(1)取地址運(yùn)算符。取地址運(yùn)算符&是單目運(yùn)算符,其功能是取變量的地址,例如:
i_ptr=&i; //變量i的地址送給指針變量i_ptr
(2)取內(nèi)容運(yùn)算符。取內(nèi)容運(yùn)算符“*”是單目運(yùn)算符,用來表示指針變量所指單元的內(nèi)容,在星號(hào)“*”運(yùn)算符之后跟的必須是指針變量。例如:
j=*i_ptr; //將i_ptr所指的單元的內(nèi)容賦給變量j
可以把數(shù)組的首地址賦予指向數(shù)組的指針變量。例如:
int a[5],*ap;
ap=a; //數(shù)組名表示數(shù)組的首地址,故可賦予指向數(shù)組的指針變量
也可以寫成:
ap=&a[0]; //數(shù)組第一個(gè)元素的地址也是整個(gè)數(shù)組的首地址,也可賦予指針變量ap
還可以采用初始化賦值的方法:
int a[5],*ap=a;
也可以把字符串的首地址賦予指向字符類型的指針變量。例如:
unsigned char *cp;
cp="Hello World!";
這里應(yīng)該說明的是,并不是把整個(gè)字符串裝入指針變量,而是把存放該字符串的字符數(shù)組的首地址裝入指針變量。
對(duì)于指向數(shù)組的指針變量,可以進(jìn)行加減運(yùn)算,例如:
cp--; //cp指向上一個(gè)數(shù)組元素
ap++; //ap指向下一個(gè)數(shù)組元素
例如:定義了指針類型的形式參數(shù)如下:
uchar *str;
該形式參數(shù)表示一個(gè)無符號(hào)字符型變量的地址??梢圆捎靡韵沦x值語句:
SBUF=*(str+k); //將單元地址為str+k的內(nèi)容賦給專用寄存器SBUF,啟動(dòng)發(fā)送
在調(diào)用該函數(shù)時(shí),直接把數(shù)組trdata[]的數(shù)組名作為實(shí)際參數(shù)代入即可,因?yàn)閿?shù)組名表示數(shù)組的首地址,故可直接賦予指向數(shù)組的指針變量。
-
C語言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
144766 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71698
發(fā)布評(píng)論請先 登錄

c語言指針用法簡單舉例 C51的指針概述
評(píng)論