第10章 指針(三)對地址進(jìn)行分類------指針類型
|
我們已經(jīng)知道,指針就是首地址。
在日常生活中,我們認(rèn)識了一個人A,而后我們用他的電話聯(lián)系他,當(dāng)然關(guān)系好些,可以留下其地址,以便登門拜訪。于是我們用一個本子,記錄下電話和地址,這個記錄電話地址的本子,就是我們常說的電話本兒,現(xiàn)在我們的手機(jī)里面就有電話本,功能強(qiáng)些的電話簿,還有記錄地址的功能。通過地址我們就可以找到他們。因此,記錄地址是我們?nèi)粘1匦璧囊粋€工作。 在計算機(jī)中, 我們定義了一個變量A,而后我們用變量名A訪問它,當(dāng)然深入編程,也可留下A的首地址,以便登門拜訪。于是我們需要記錄下A的首地址;C語言中,我們可以使用一個變量B來記錄A的首地址的,這里的B是一種特殊的變量,是專門用來存放地址的變量;有關(guān)這種地址變量的定義,我們會在后面描述。通過B中的地址,我們就可以找到A了。因此,存儲首地址是我們C編程必需的一個工作。 好,現(xiàn)在,我們首先,對地址簿中,可能的地址,進(jìn)行分類, 日常生活中,我們的地址簿是一個本子,其中人的地址是按照朋友、同學(xué)、同事、親戚、好友等等分類的,而且可以用不同顏色的筆來區(qū)別!比如紅筆寫的地址,代表朋友。黑筆,代表同學(xué)。黃筆,代表同事。綠筆,代表親戚。藍(lán)筆,代表好友。 電腦編程中,我們的地址簿中存放的是一些變量或函數(shù)的首地址。我們不能用顏色來分類地址,而是按照整型、浮點(diǎn)、字符、數(shù)組、函數(shù)等等對地址進(jìn)行分類,分成整型地址、浮點(diǎn)地址、字符地址、數(shù)組地址、函數(shù)地址等等,也就是說地址是有類型的,這些類型是繁雜的,需要認(rèn)真加以區(qū)別和記憶! 1、普通變量首地址的類型: 我們已經(jīng)很熟悉,用int定義的變量,能存放-32768~+32767這個范圍內(nèi)整數(shù),這種變量的首地址是有類型的,類型是int *,這里*的意思就是地址類型。 例如:有int a;那么int a的首地址我們簡寫成&a,于是&a的類型就是int * 如果說,int變量和int變量的首地址之間有類型的對應(yīng)關(guān)系的話, 那么,變量是int類型,相應(yīng)的,該變量首地址是int *類型,簡寫為: int ---->>>> int * 同理:float---->>>>float * char---->>>>char * unsigned---->>>>unsigned * long---->>>>long * ..................... 2、一維數(shù)組首地址的類型: int---->>>>int * float---->>>>float * char---->>>>char *; 例如:int a[10]; 其首地址就是數(shù)組名a , 于是a就是int *類型的。 而此數(shù)組中,任意一個元素的首地址的類型,也是int *類型的。 比如a[5]的首地址是&a[5],也是int *類型的 3、二維數(shù)組首地址的類型: 假設(shè)有2維數(shù)組定義如下: int a[3][4]; 那么把int a[3][4],用小括號把數(shù)組名括起來變成int (a)[3][4],再把數(shù)組名變成*,即int(*)[3][4],接著把表示行數(shù)的部分[3]去掉,變成int (*)[4],就是這個2維數(shù)組地址的類型。 int a[3][4]; ------>>>> int (*)[4] 一般的,二維int 數(shù)組名[數(shù)組行數(shù)][n]----->>>>int (*)[n],而此二維數(shù)組每行必須有n列。 于是同理: 二維float 數(shù)組名[數(shù)組行數(shù)][n]----->>>>float (*)[n] 二維char 數(shù)組名[數(shù)組行數(shù)][n]---->>>>char (*)[n] 4、函數(shù)首地址的類型: 對于函數(shù),假設(shè),有函數(shù)int F(void){...},那么,用int (*)(void)作為它的首地址(又稱入口地址)的類型。 這個類型是如何來的呢?就是把其函數(shù)首部 int F(void),用小括號把函數(shù)名括起來變成int (F)(void),再把函數(shù)名變成*,即int(*)(void),就是該函數(shù)入口地址的類型。 int F(void){...}---->>>>int (*)(void) 從上面可以看到,地址類型中,都用到一個* 我們已經(jīng)知道,首地址就是指針,因此上述地址類型,就是指針類型。 學(xué)習(xí)指針的第一關(guān)就是能熟悉上面這些繁雜的地址類型的寫法,這,是必須穿越的第一關(guān)哦 |
作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機(jī)號)
框架官網(wǎng):
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發(fā)框架
,
給用戶和開發(fā)者最佳的.Net框架平臺方案,為企業(yè)快速構(gòu)建跨平臺、企業(yè)級的應(yīng)用提供強(qiáng)大支持。
關(guān)于作者:系統(tǒng)架構(gòu)師、信息系統(tǒng)項目管理師、DBA。專注于微軟平臺項目架構(gòu)、管理和企業(yè)解決方案,多年項目開發(fā)與管理經(jīng)驗,曾多次組織并開發(fā)多個大型項目,在面向?qū)ο蟆⒚嫦蚍?wù)以及數(shù)據(jù)庫領(lǐng)域有一定的造詣。現(xiàn)主要從事基于
RDIF
框架的技術(shù)開發(fā)、咨詢工作,主要服務(wù)于金融、醫(yī)療衛(wèi)生、鐵路、電信、物流、物聯(lián)網(wǎng)、制造、零售等行業(yè)。
如有問題或建議,請多多賜教!
本文版權(quán)歸作者和CNBLOGS博客共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯(lián)系我,非常感謝。

浙公網(wǎng)安備 33010602011771號