先看一个,指针参数的函数 调用过程
cpp
#include <iostream>
using namespace std;
struct node{
char data;
};
void pr(node *a){
a=new node();
a->data='x';
cout<<"pr= "<<a<<endl;
cout<<"data= "<<a->data<<endl;
}
int main(int argc, char** argv) {
node *a;
pr(a);
cout<<"main= "<<a<<endl;
cout<<"data= "<<a->data<<endl;
return 0;
}
运行结果为:
pr= 0x7f1540
data= x
main= 0x2b
修改一下代码,把函数的参数 由指针 改为指针的引用
cpp
#include <iostream>
using namespace std;
struct node{
char data;
};
void pr(node* &a){
a=new node();
a->data='x';
cout<<"pr= "<<a<<endl;
cout<<"data= "<<a->data<<endl;
}
int main(int argc, char** argv) {
node *a;
pr(a);
cout<<"main= "<<a<<endl;
cout<<"data= "<<a->data<<endl;
return 0;
}
pr= 0xb61540
data= x
main= 0xb61540
data= x