數(shù)組作為函數(shù)參數(shù)傳遞 指針參數(shù)與數(shù)組參數(shù)的關(guān)系?
指針參數(shù)與數(shù)組參數(shù)的關(guān)系?在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價(jià)的錯(cuò)覺。在靜態(tài)存儲(chǔ)(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對(duì)應(yīng)于(而不是指向)一個(gè)內(nèi)存塊,并且它的地址和容量在
指針參數(shù)與數(shù)組參數(shù)的關(guān)系?
在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價(jià)的錯(cuò)覺。
在靜態(tài)存儲(chǔ)(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對(duì)應(yīng)于(而不是指向)一個(gè)內(nèi)存塊,并且它的地址和容量在其生存期內(nèi)保持不變。只能更改數(shù)組的內(nèi)容。
指針可以隨時(shí)指向任何類型的內(nèi)存塊,其特點(diǎn)是“可變”,所以我們經(jīng)常使用指針來(lái)操作動(dòng)態(tài)內(nèi)存。
當(dāng)數(shù)組作為函數(shù)參數(shù)傳遞時(shí),數(shù)組將自動(dòng)退化為相同類型的指針。
所以:
char a[]=“你好世界”
char*P=a
cout<< sizeof(a)<< endl//12字節(jié)
cout<< sizeof(P)<< endl//4字節(jié)
void func(char a[100])
{
cout<< sizeof(a)<< endl//4字節(jié)而不是100字節(jié)
}