C++一級和多級指針的使用

C++中的指針是非常好用的,但由于各種指針類型的繁多,很容易遺忘。

1)一級指針

例如

char str[10];

char str[10] = {0};//初始化

此時(shí)str為一指向10個(gè)char類型數(shù)據(jù)的內(nèi)存的首地址;

有時(shí)需要?jiǎng)討B(tài)分配內(nèi)存,則可以按照如下進(jìn)行操作

char *str;//此時(shí)str為一個(gè)字符指針變量,但未指向任何地址,浮空

int N = 10;

str = new char [10];

運(yùn)用new關(guān)鍵字,便可以動(dòng)態(tài)申請了。

2)二級指針

例如

char image[100][100];

char image[100][100] = {{0}};

此時(shí)image為指向100*100的二維char型數(shù)組

但如果需要?jiǎng)討B(tài)分配內(nèi)存空間呢?此時(shí),則可以

char **image;

image = new char *[100];//image指向一個(gè)一維指針數(shù)組的首地址

for(int i = 0; i<100; i++)

image[i] = new char [100];//為每一個(gè)一級指針image[i]分配長度為100的char型數(shù)組

當(dāng)有一個(gè)維度確定數(shù)目時(shí)

char (*image)[100];//此時(shí)可以看成n*100的二維數(shù)組

image = new int [n][100];

3)內(nèi)存的釋放

若為指針指向一個(gè)變量,則需用delete

例如

int *p;

int N = 100;

p = &N;

delete p;

或者

int *p;

p = new int (100);//此時(shí)p指向初始值為100的整形變量

delete p;

若指針p指向一維或多位數(shù)組,則需用delete[] p;

驢兒先生筆記,不斷更新中zzz...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容