博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
当结构体中有指针成员时
阅读量:5740 次
发布时间:2019-06-18

本文共 523 字,大约阅读时间需要 1 分钟。

hot3.png

先上代码:

#include 
using namespace std;struct example { int iNum; char* cNum;}; int main() { example struct1,struct2; char c = 'a'; struct1.iNum = 1; struct1.cNum = &c; struct2 = struct1; cout << *(struct1.cNum) << endl; *(struct2.cNum) = 'b'; cout << *(struct1.cNum) << endl; return 0; }

输出的结果是a,b。

也就是说*(struct2.cNum) = ‘b’;这一句改变了struct1的成员。
原因在于赋值,结构体的赋值是变量逐个拷贝,所以两者指向了同一片内。修改其中一个另一个也就跟着改了。

此时,要么不赋值,要么记得改回来,或者重载赋值运算符。

转载于:https://my.oschina.net/HappyTeemo/blog/1558471

你可能感兴趣的文章
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
2-14
查看>>
swift-UITableView的基本使用(例子)
查看>>
自动化测试之WatiN(2)
查看>>
文件方式实现完整的英文词频统计实例
查看>>
Oracle活动会话历史(ASH)及报告解读
查看>>
Project Euler Problem 7: 10001st prime
查看>>
通过 Xshell 5 连接 centOS 7 服务器
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
Ai challenger 2017 image caption小结
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>