指針做形參時 實參傳遞過去的是一個副本拷貝),第一段程序只是改變了副本所指變量的值,並沒有改變實參所指變量的值,也沒有改變實參指針的內容,第二段程序改變了實參指針所指變量的內容。
一級指針做形參:首先一定要明白形參和你傳遞參數的那個實參是兩個不同的變量,即使同名也還依然不同。指針傳遞的是一個變量或者一個值的地址,但是它本身還是采用值傳遞的方式。即你不能使它指向另外一塊地址,但是你可以改變它指向的空間裡存的值。
例如如下程序:
#include<iostream> using namespace std; void test(int *p){ int a=4; p=&a; cout<<*p<<endl; } int main(){ int x=3; int *p; p=&x; cout<<x<<endl; test(p); cout<<*p<<endl; return 0; } //輸出結果 3 4 3 #include<iostream> using namespace std; void test(int *p){ *p=4; cout<<*p<<endl; } int main(){ int x=3; int *p; p=&x; cout<<x<<endl; test(p); cout<<*p<<endl; return 0; } //輸出結果3 4 4
本文出自 “菜鳥的進階之路” 博客,請務必保留此出處http://beyond316.blog.51cto.com/7367775/1272486