*p=&a和p=&a 指針參數(shù)與數(shù)組參數(shù)的關系?
指針參數(shù)與數(shù)組參數(shù)的關系?在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價的錯覺。在靜態(tài)存儲(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對應于(而不是指向)一個內(nèi)存塊,并且它的地址和容量在
指針參數(shù)與數(shù)組參數(shù)的關系?
在C/C程序中,指針和數(shù)組在許多地方可以相互替換,給人一種等價的錯覺。
在靜態(tài)存儲(如全局陣列)或堆棧中創(chuàng)建陣列。數(shù)組的名稱對應于(而不是指向)一個內(nèi)存塊,并且它的地址和容量在其生存期內(nèi)保持不變。只能更改數(shù)組的內(nèi)容。
指針可以隨時指向任何類型的內(nèi)存塊,其特點是“可變”,所以我們經(jīng)常使用指針來操作動態(tài)內(nèi)存。
當數(shù)組作為函數(shù)參數(shù)傳遞時,數(shù)組將自動退化為相同類型的指針。
所以:
char a[]=“Hello world”
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é)
C語言中,指針和數(shù)組名有什么關系嗎?
當你問問題時,你不經(jīng)意間說了一點不同。就地址而言,兩者沒有區(qū)別。但是,指針可以自由移動,但數(shù)組名稱不能。這是因為數(shù)組名是一個命名變量,而變量名本身不能更改。因此,無論何時使用它,它都指向一個固定地址指針變量獲取地址的過程實際上是一個匿名引用過程。它獲取的是地址而不是變量名。因為您不知道它是變量名,所以可以隨意更改它。
指針和數(shù)組的區(qū)別?
您好,指針指向一個內(nèi)存,其中包含內(nèi)存的地址。數(shù)組也是一個指針,但是當它在開始時被定義時,它指向一個空內(nèi)存(由系統(tǒng)給出,您可以安全地使用它),并且它是一個*const常量指針(請注意,它不是指向常量的指針)。只要聲明了這個指針,它就不能再指向其他內(nèi)存。此外,數(shù)組和指針都可以用括號運算符進行偏移??偠灾羔樅蛿?shù)組的本質(zhì)是完全相同的,只是數(shù)組在開始時得到一塊內(nèi)存