大家好,又见面了,我是你们的朋友全栈君。
结论:结构体的赋值,修改新结构体的内容不会改变原来的那个结构体的值,而指针的赋值,再对指针内容修改则会改变指针指向的那个对象的值,因为指针的赋值其实是将地址传给另一个指针。
定义结构体:
struct person {
int age;
string name;
};
结构体赋值:
person p1;
p1.age = 12;
p1.name = "Mike";
person p2 = p1;
p2.name = "Mary";
cout << "p1:" << p1.age << ' ' << p1.name << endl;
cout << "p2:" << p2.age << ' ' << p2.name << endl;
结果:
p1:12 Mike
p2:12 Mary
结构体指针赋值:
person p;
p.age = 12;
p.name = "Mike";
person* p1 = &p; // 指针必须初始化再使用
person* p2 = p1;
p2->name = "Mary";
cout << "p1:" << p1->age << ' ' << p1->name << endl;
cout << "p2:" << p2->age << ' ' << p2->name << endl;
结果:
p1:12 Mary
p2:12 Mary
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159740.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...