摘 要 指針是C語言最強(qiáng)大的功能,也是C語言中最難以掌握的功能。掌握指針的應(yīng)用,可以使程序簡潔、高效。每一個(gè)學(xué)習(xí)和使用C語言的人,都應(yīng)當(dāng)深入的學(xué)習(xí)和掌握指針。指針?biāo)阈g(shù)運(yùn)算是指針操作中比較難掌握的部分。在本文中,我們將總結(jié)C語言的指針運(yùn)算。
關(guān)鍵詞 C語言 運(yùn)算 指針
指針是C語言最強(qiáng)大的功能,也是C語言中最難以掌握的功能。掌握指針的應(yīng)用,可以使程序簡潔、高效。每一個(gè)學(xué)習(xí)和使用C語言的人,都應(yīng)當(dāng)深入的學(xué)習(xí)和掌握指針。指針?biāo)阈g(shù)運(yùn)算是指針操作中比較難掌握的部分。在本文中,我們將總結(jié)C語言的指針運(yùn)算。
指針可以執(zhí)行的算術(shù)運(yùn)算有:①指針自增;②指針自減;③指針加上一個(gè)整型常量或整型變量n;④指針減去一個(gè)整型常量或整型變量n;⑤兩個(gè)指針相減。
需要注意的是,通常只有當(dāng)指針指向某個(gè)數(shù)組元素時(shí),才對(duì)指針作上述5種算術(shù)運(yùn)算。
一、指針自增
指針自增就是指向本數(shù)組的下一個(gè)元素。
假設(shè)有數(shù)組定義如下:double a[5] = {3.2, 4.75, 7.2, 9, 1.7};
double *p = a;
此時(shí)內(nèi)存圖示如下:
此時(shí)若執(zhí)行p++,指針p指向數(shù)組的下一個(gè)元素,圖示如下:
二、指針自減
指針自減就是指向本數(shù)組的上一個(gè)元素。
例如有數(shù)組定義如下:double a[5] = {3.2, 4.75, 7.2, 9, 1.7};
double *p = a[4];
內(nèi)存圖示如下:
此時(shí)若執(zhí)行p--,指針p指向數(shù)組的上一個(gè)元素,圖示如下:
三、指針加上一個(gè)整型常量或整型變量n
指針加上一個(gè)整型常量或整型變量n的結(jié)果是得到一個(gè)指向本指針?biāo)赶虻臄?shù)組元素之后第n個(gè)元素的指針。例如數(shù)組定義如下:
double a[5] = {3.2, 4.75, 7.2, 9, 1.7};
double *p = a;
此時(shí)指針p指向數(shù)組a的第一個(gè)元素。
若執(zhí)行 p = p + 3,指針p指向數(shù)組元素a[3]
四、指針減去一個(gè)整型常量或整型變量n
指針減去一個(gè)整型常量或整型變量n的結(jié)果是得到一個(gè)指向本指針?biāo)赶虻臄?shù)組元素之前第n個(gè)元素的指針。
若有定義 double a[5] = {3.2, 4.75, 7.2, 9, 1.7};
double *p = a[4];
指針p指向數(shù)組元素a[4]。
如果執(zhí)行p = p - 3之后,指針p指向數(shù)組元素a[1]
五、兩個(gè)指針相減
首先必須明確,通常只有當(dāng)兩個(gè)指針指向同一個(gè)數(shù)組時(shí)才對(duì)兩個(gè)指針相減。
兩個(gè)指針相減得到的整數(shù)是這兩個(gè)指針?biāo)赶虻脑厮饕抵睢?/p>
例如有如下代碼:
int a[5] = {10, 20, 30, 40, 50};
int *p1 = a;
int *p2 = a[3];
int x = p2 - p1;
因?yàn)閜1和p2位置如下:
所以表達(dá)式 p2 - p1的值是3
結(jié)語:指針?biāo)阈g(shù)運(yùn)算是初學(xué)者感到比較困惑的問題,希望本文能對(duì)他們有所幫助。
作者簡介:
張俊娟 ,漢族, 新疆昌吉奇臺(tái)縣人,一級(jí)講師。