8.5 指針數(shù)組、指向指針的指針
1.指針數(shù)組指的是一個(gè)數(shù)組,其元素均為指針類型數(shù)據(jù),也就是說,指針數(shù)組中的每一個(gè)元素都是指針變量。指針數(shù)組的定義形式為:
類型標(biāo)識(shí) *數(shù)組名[數(shù)組長度說明]
指針數(shù)組可以使字符串處理更加方便。
2.指向指針的指針是指指向指針數(shù)據(jù)的指針變量,一個(gè)指向指針數(shù)據(jù)的指針變量的一般形式為:
類型標(biāo)識(shí) * *p;
8.6 main函數(shù)的命令參數(shù)
指針數(shù)組的一個(gè)重要應(yīng)用是作為main函數(shù)的形參,一般來說,main函數(shù)后的括號(hào)中是空的,即沒有參數(shù)。實(shí)際上main可以有參數(shù),如:
main(argc,argv)
其中,argc和argv就是main函數(shù)的形參。其他函數(shù)形參的值可以通過函數(shù)調(diào)用語句的實(shí)參中得到,由于main函數(shù)是由系統(tǒng)調(diào)用的,因而main函數(shù)的形參值不能從程序中得到,但可以在操作系統(tǒng)狀態(tài)下,將實(shí)參和命令一起給出,從而使main函數(shù)的形參得到值。命令行的一般形式為:
命令名 參數(shù)1 參數(shù)2…參數(shù)n
命令名和各參數(shù)之間用空格分隔開。
8.7 動(dòng)態(tài)存儲(chǔ)分配
在C語言中有一種稱為“動(dòng)態(tài)存儲(chǔ)分配”的內(nèi)存空間分配方式:程序在執(zhí)行期間需要存儲(chǔ)空間時(shí),通過“申請(qǐng)”分配指定的內(nèi)存空間;當(dāng)閑置不用時(shí),可隨時(shí)將其釋放,由系統(tǒng)另作它用。本節(jié)介紹C語言中動(dòng)態(tài)分配系統(tǒng)的主要函數(shù):malloc()、calloc()、free()及realloc(),使用這些函數(shù)時(shí),必須在程序開頭包含文件stdlib.h。
1.主內(nèi)存分配函數(shù)—malloc()
函數(shù)格式:void*malloc(unsigned size);
函數(shù)功能:從內(nèi)存中分配一大小為size字節(jié)的塊。
參數(shù)說明:size為無符號(hào)整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。
返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。
說明:當(dāng)size為0時(shí),返回NULL。
2.主內(nèi)存分配函數(shù)——calloc()
函數(shù)格式:void*malloc(unsigned n,unsigned size);
函數(shù)功能:從內(nèi)存中分配n個(gè)同一類型數(shù)據(jù)項(xiàng)的連續(xù)存儲(chǔ)空間,每個(gè)數(shù)據(jù)項(xiàng)的大小為size字節(jié)。
參數(shù)說明:n為無符號(hào)整型,用于指定分配的數(shù)據(jù)項(xiàng)的個(gè)數(shù)size為無符號(hào)整型,用于指定需要分配的數(shù)據(jù)項(xiàng)所占內(nèi)存空間的字節(jié)數(shù)。
返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。
3.重新分配內(nèi)存空間函數(shù)——realloc()
函數(shù)格式:void*realloc(void *block,unsigned size);
函數(shù)功能:將block所指內(nèi)存區(qū)的大小改為size字節(jié)的塊。
參數(shù)說明:block為void類型的指針,指向內(nèi)存中某塊,size為無符號(hào)整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。
返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。
4.釋放內(nèi)存函數(shù)—free()
函數(shù)格式:void free(void*block);
函數(shù)功能:將calloc()、malloc()及realloc()函數(shù)所分配的內(nèi)存空間釋放為自由空間。
參數(shù)說明:block為void類型的指針,指向要釋放的內(nèi)存空間。
返回值:無。
相關(guān)推薦:
2014年9月計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間預(yù)告
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |