返回信息流char str1[]="abc";
char str2[]="abc";
const char str3[]="abc";
const char str4[]="abc";
cout<<boolalpha<<(str1==str2)<<endl;
cout<<boolalpha<<(str3==str4)<<endl;
cout<<boolalpha<<(str1==str3)<<endl;
输出结果是啥?
另外求解为什么第一个是 false 呢?(曾经记得两个相同的字串,实际是一个地址,忘了在什么地方看到了,还是我理解不透彻。。。)
这是一条镜像帖。来源:北邮人论坛 / cpp / #47264同步于 2010/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[解惑]求做个题,关于指针的~
blove
2010/12/2镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
str1 str2在栈里,不是指针
【 在 blove (大雨) 的大作中提到: 】
: char str1[]="abc";
: char str2[]="abc";
: const char str3[]="abc";
: ...................
曾经记得两个相同的字串,实际是一个地址,忘了在什么地方看到了,还是我理解不透彻。。。)
这个主要是看编译器,如果相同的字符串“abc”,编译器有可能做优化,不再重新分配一段空间来存放“abc”,但是str1和str2的地址肯定是不同