运行结果为啥,为啥
2016-02-03 10:02
309 查看
#include "stdio.h" #include "conio.h" #include <Map> #include <string.h> using namespace std; class cmp { public: bool operator()(const char* s1, const char* s2) { return strcmp(s1, s2) < 0; } }; typedef struct _struct_item { BOOL bType; DWORD value; char *buffer; }ITEM; map<char *, ITEM ,cmp> maps; char *gstr; void func() { map<char *, ITEM> ::iterator iter; char str[10]="a"; gstr = str; ITEM item; printf("0X%X\n",&item); printf("0X%X\n",str); item.buffer = new char[10]; strcpy(item.buffer,"dedes"); maps.insert(pair<char *,ITEM>(str,item)); printf("--------------\n"); char *p; for(iter = maps.begin();iter != maps.end();iter++) { printf("0X%X %s 0X%X\n",&(iter->first),iter->first,&(iter->second)); p = iter->first; } printf("--------------\n"); str[0]='b'; printf("0X%X\n",str); p[0]='d'; printf("%s\n",str); printf("--------------\n"); printf("--------------\n"); for(iter = maps.begin();iter != maps.end();iter++) { printf("0X%X %s 0X%X\n",&(iter->first),iter->first,&(iter->second)); } printf("--------------\n"); } int main() { func(); map<char *, ITEM> ::iterator iter; printf("--------------\n"); for(iter = maps.begin();iter != maps.end();iter++) { printf("0X%X %s 0X%X\n",&(iter->first),iter->first,&(iter->second)); } printf("--------------\n"); getchar(); return 0; }
运行如下
0X28FED0 0X28FEE0 -------------- 0X6E0F28 a 0X6E0F2C -------------- 0X28FEE0 d -------------- -------------- 0X6E0F28 d 0X6E0F2C -------------- -------------- 0X6E0F28 0X6E0F2C
谁能解释为啥吗 明明两个地址不一样,但修改一个地址的数据 另一个为啥跟着变化呢。--------------
相关文章推荐
- windows 下 CMD 查询本机开了哪些端口 并查看开启端口的软件
- NSTimer在tableView中的复用问题
- 7.11 Models -- Customizing Adapters
- Javascript函数声明和函数表达式
- Android应用开发基础篇(15)-----URL(获取指定网址里的图片)
- 我持续推动Rust语言支持Windows XP系统
- webview加载页面--
- 树莓派安装软件解决依赖办法
- 磁盘映射的创建
- 生鲜电商:农产品电商皇冠上的皇冠
- 程序员必备:技术面试准备手册
- 使用 VisualVM 进行性能分析及调优
- Android应用开发提高篇(6)-----FaceDetector(人脸检测)
- Android应用开发基础篇(14)-----自定义标题栏
- eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案
- 总结:四张图读懂手游发行公司的日常工作
- 开源免费接口的使用
- html table边框
- 360私有化详细资料曝光:抵押总部大楼(转)
- Android应用开发提高篇(5)-----Camera使用