C++中以陣列指標為函式引數,為什麼可以修改該陣列指標的值?
太陽還暖c丶 發表于 文化2022-09-12
形參為指向陣列的指標的時候指標的值是可以改變的,最開始的時候它指向陣列的某個字元(這要看你傳的形參了),可以向後移動,也可以向前移動,
引數問題:
如果傳遞的一般的數,比如說int,double等等,實際上傳遞的是該值的複製,只能對複製的值進行操作,原來的數不受影響;
如果傳遞的是一個數組,那麼實際傳遞的就是該陣列,可以直接對該陣列進行操作,也就是原來的陣列(實際上是同一個陣列)要改變;
形參為指向陣列的指標的時候只是陣列的首地址還是不變的,比如說
int
num[N];
int
*p
=
num;
GetInfo(num);//第一種情況
GetInfo(p+1);//第二種情況
在這兩個函式呼叫中第一種情況num是陣列首地址不能改變,第二種情況p指向該陣列可以改變,此時
p指向的是該陣列的第二個數;