C和指針:對(duì)數(shù)組的學(xué)習(xí)記錄
[導(dǎo)讀]1.12[arry]? = *(arry + 2) = arry[2]1.2下標(biāo)絕不會(huì)比指針更有效率,但指針有時(shí)會(huì)比下標(biāo)有效。結(jié)論:? ? 1.當(dāng)根據(jù)某個(gè)決定數(shù)目的增量在一個(gè)數(shù)組中移動(dòng)的時(shí)候,使用指針
1.1
2[arry]? = *(arry + 2) = arry[2]
1.2
下標(biāo)絕不會(huì)比指針更有效率,但指針有時(shí)會(huì)比下標(biāo)有效。
結(jié)論:
? ? 1.當(dāng)根據(jù)某個(gè)決定數(shù)目的增量在一個(gè)數(shù)組中移動(dòng)的時(shí)候,使用指針比使用下標(biāo)產(chǎn)生效率更高的代碼。當(dāng)這個(gè)增量是1并且機(jī)器具有地址自動(dòng)增量模型時(shí),這點(diǎn)表現(xiàn)更突出。
? ? 2.聲明為寄存器變量的指針通常比位于靜態(tài)內(nèi)存和堆棧中的指針效率更高。
? ? 3.如果可以通過(guò)測(cè)試一些已經(jīng)初始化并經(jīng)過(guò)調(diào)整的內(nèi)容來(lái)判斷循環(huán)是否應(yīng)該終止,就不需要使用單獨(dú)的計(jì)數(shù)器。
? ? 4.那些必須在運(yùn)行時(shí)求值的表達(dá)式較之諸如&arry[SIZE]或(arry + SIZE)這樣的常量表達(dá)式往往代價(jià)更高。
1.3
傳址調(diào)用是通過(guò)傳遞一個(gè)指向所需元素的指針來(lái)實(shí)現(xiàn)的,函數(shù)得到的是該指針的拷貝。
void?strcpy(?char?*bugger,?char?const?*string) { ????while(?(*buffer++?=?*string++)?!=?'