#include<iostream>
using namespace std;
struct A{
int a;
int b;
char c;
};
void f(struct A *&p, int a, int b, char c)
{
p = new struct A;
if (!p)
{
return;
}
else
{
p->a = a;
p->b = b;
p->c = c;
}
}
int main()
{
struct A *p = NULL;
f(p, 1, 2, 48);
cout<<p->a<<endl;
cout<<p->b<<endl;
cout<<p->c<<endl;
return 0;
}
相当于传递指针的引用
如果写成下面的情况是错误的
#include<iostream>
using namespace std;
struct A{
int a;
int b;
char c;
};
void f(struct A *p, int a, int b, char c)//*p应该为*&p
{
p = new struct A;
if (!p)
{
return;
}
else
{
p->a = a;
p->b = b;
p->c = c;
}
}
int main()
{
struct A *p = NULL;
f(p, 1, 2, 48);
cout<<p->a<<endl;
cout<<p->b<<endl;
cout<<p->c<<endl;
return 0;
}