指针形参

指针做形参时  实参传递过去的是一个副本(拷贝),第一段程序只是改变了副本所指变量的值,并没有改变实参所指变量的值,也没有改变实参指针的内容,第二段程序改变了实参指针所指变量的内容。


一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。


例如如下程序:

#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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章