指針做形參時 實參傳遞過去的是一個副本拷貝),第一段程序只是改變了副本所指變量的值,並沒有改變實參所指變量的值,也沒有改變實參指針的內容,第二段程序改變了實參指針所指變量的內容。
一級指針做形參:首先一定要明白形參和你傳遞參數的那個實參是兩個不同的變量,即使同名也還依然不同。指針傳遞的是一個變量或者一個值的地址,但是它本身還是采用值傳遞的方式。即你不能使它指向另外一塊地址,但是你可以改變它指向的空間裡存的值。
例如如下程序:
#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