當(dāng)前位置:博客首頁>>編程基礎(chǔ) >> 閱讀正文

【C++】C++指針與數(shù)組的學(xué)習(xí)小結(jié)(二)

作者: 鄭曉 分類: 編程基礎(chǔ) 發(fā)布于: 2012-10-25 23:33 瀏覽:7,298 評(píng)論(3)


上一篇【C++】C++指針與數(shù)組的學(xué)習(xí)小結(jié)(一)里主要介紹了一些C++指針的基礎(chǔ)知識(shí),講到了指針與數(shù)組名的關(guān)系。今天復(fù)習(xí)一下指針的運(yùn)算、指針與數(shù)組的表示法以及數(shù)組的靜態(tài)與動(dòng)態(tài)聯(lián)編。

一、指針的運(yùn)算,C++允許將指針和整數(shù)進(jìn)行相加運(yùn)算。如將指針加1的結(jié)果等于原來的地址加上指向的對(duì)象所占用的總字節(jié)總數(shù)。當(dāng)然,你還可以將兩個(gè)指針進(jìn)行相減以獲得兩個(gè)指針的差,這一種運(yùn)算結(jié)果是一個(gè)整數(shù),應(yīng)該是相差的字節(jié)倍數(shù),僅當(dāng)兩個(gè)指針指向同一個(gè)數(shù)組(或指向超出結(jié)尾的一個(gè)位置)時(shí),這種運(yùn)算才有意義。

二、表示法,平時(shí)使用方括號(hào)數(shù)組表示法等同于對(duì)指針解除引用,arr[0]等價(jià)于*arr,arr[2]等價(jià)于*(arr+2),數(shù)組名和指針變量都是如此,所以對(duì)于指針和數(shù)組來說,既 可以使用數(shù)組方括號(hào)表示法,也可以使用指針表示法。

三、數(shù)組的聯(lián)編。在使用數(shù)組聲明創(chuàng)建數(shù)組時(shí),數(shù)組的長(zhǎng)度在編譯時(shí)設(shè)置,這叫做靜態(tài)聯(lián)編,如 int arr[10] ;

在使用關(guān)鍵詞new 來創(chuàng)建數(shù)組時(shí),程序會(huì)在運(yùn)行時(shí)為數(shù)組分配空間,其長(zhǎng)度也將在程序運(yùn)行時(shí)動(dòng)態(tài)設(shè)置,所以這種方式也叫做動(dòng)態(tài)聯(lián)編。使用完這種動(dòng)態(tài)聯(lián)編的數(shù)組后需要使用delete[]來釋放其占用的內(nèi)存,實(shí)例如下:

int arrSize;

cin>>arrSize;

int * p = new int [arrSize]; //動(dòng)態(tài)創(chuàng)建數(shù)組

…程序使用…

delete [] p; //刪除數(shù)組 釋放內(nèi)存

 

? ? ? ?

本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。

本文永久鏈接: http://yjfs.org.cn/c-pointers-and-arrays-learning-summary-b.html

【C++】C++指針與數(shù)組的學(xué)習(xí)小結(jié)(二):目前有3 條留言

用戶評(píng)論頭像 洗煤機(jī)發(fā)表于 2013年08月05日 16:12[回復(fù)]

學(xué)著東東非常的難呀

用戶評(píng)論頭像 蔡佳網(wǎng)站發(fā)表于 2012年10月28日 23:55[回復(fù)]

你平時(shí)還學(xué)C++嗎?你現(xiàn)在的工作是做什么的?

    用戶評(píng)論頭像 鄭曉發(fā)表于 2012年10月29日 07:22[回復(fù)]

    工作是php,這個(gè)c++只是了解一下,這么強(qiáng)大的語言不能不了解吧?

發(fā)表評(píng)論

change vcode