指針數(shù)組的使用 指針參數(shù)與數(shù)組參數(shù)的關(guān)系?
指針參數(shù)與數(shù)組參數(shù)的關(guān)系?在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價的錯覺。在靜態(tài)存儲(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對應(yīng)于(而不是指向)一個內(nèi)存塊,并且它的地址和容量在
指針參數(shù)與數(shù)組參數(shù)的關(guān)系?
在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價的錯覺。
在靜態(tài)存儲(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對應(yīng)于(而不是指向)一個內(nèi)存塊,并且它的地址和容量在其生存期內(nèi)保持不變。只能更改數(shù)組的內(nèi)容。
指針可以隨時指向任何類型的內(nèi)存塊,其特點是“可變”,所以我們經(jīng)常使用指針來操作動態(tài)內(nèi)存。
當數(shù)組作為函數(shù)參數(shù)傳遞時,數(shù)組將自動退化為相同類型的指針。
所以:
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é)
}