大家好,又见面了,我是你们的朋友全栈君。
结论:结构体的赋值,修改新结构体的内容不会改变原来的那个结构体的值,而指针的赋值,再对指针内容修改则会改变指针指向的那个对象的值,因为指针的赋值其实是将地址传给另一个指针。
定义结构体:
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
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159740.html原文链接:https://javaforall.cn