钱能写的C++程序设计中的例子是不是错了?

xosten 2009-05-07 08:00:17
一直做Java,今天看钱能写的C++程序设计教材第二版。
其中有个例子。
cout<<("join"=="join" ? "" : "not ")<<"equal\n"; // 直接字面值比较
char* str1="good";
char* str2="good";
cout<<(str1==str2 ? "" : "not ")<<"equal\n"; // 字符指针比较
char buffer1[6]="Hello";
char buffer2[6]="Hello";
cout<<(buffer1==buffer2 ? "" : "not ")<<"equal\n"; // 字符数组比较

按教材的说法结果应该是
not equal
not equal
not equal

但实际运行结果却是
equal
equal
not equal

编译环境是DEV-C++4.9.9.2,操作系统是XP SP2
请大家判断一下正确的结果应该是什么。
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bob0601 2009-05-08
  • 打赏
  • 举报
回复
肯能是书本的出问题啦
我们有时候也不要完全相信书本
T技术沙龙 2009-05-08
  • 打赏
  • 举报
回复
我的编译器是VC6.0的,运行后和楼主的是一样的,估计是书错了
hongwei789007 2009-05-08
  • 打赏
  • 举报
回复
如果相等,可能是编译器优化的结果!
vansinba 2009-05-08
  • 打赏
  • 举报
回复
VC2005下也是这个结果
equal
equal
not equal
换教材吧,"jion“存储的是静态字符串,直接字面值、字符指针都是一样的
buffer1和buffer2是动态的字符数组,他们的地址不一样,指针的值也不一样
taodm 2009-05-08
  • 打赏
  • 举报
回复
换本好点的教材呗。
wzw200 2009-05-08
  • 打赏
  • 举报
回复
编译环境 决定结果 用VC6.0看看

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧