C++中以陣列指標為函式引數,為什麼可以修改該陣列指標的值?太陽還暖c丶2021-01-01 18:21:23

形參為指向陣列的指標的時候指標的值是可以改變的,最開始的時候它指向陣列的某個字元(這要看你傳的形參了),可以向後移動,也可以向前移動,

引數問題:

如果傳遞的一般的數,比如說int,double等等,實際上傳遞的是該值的複製,只能對複製的值進行操作,原來的數不受影響;

如果傳遞的是一個數組,那麼實際傳遞的就是該陣列,可以直接對該陣列進行操作,也就是原來的陣列(實際上是同一個陣列)要改變;

形參為指向陣列的指標的時候只是陣列的首地址還是不變的,比如說

int

num[N];

int

*p

=

num;

GetInfo(num);//第一種情況

GetInfo(p+1);//第二種情況

在這兩個函式呼叫中第一種情況num是陣列首地址不能改變,第二種情況p指向該陣列可以改變,此時

p指向的是該陣列的第二個數;