首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这道题不会做!

2012-05-20 
这道题不会做!!求助以下三条输出语句分别输出什么?char str1[] abcchar str2[] abcconst char str

这道题不会做!!求助
以下三条输出语句分别输出什么?
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc"; 
const char str4[] = "abc"; 
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?


[解决办法]
c++/c标准对未定义,不同的编译其有不通的行为。

对VC2008,编译选项是为/Od时,输出如下;
false
false
false

对VC2008,编译选项是为/O1或者 /O2时,输出如下;
false
false
true


一般的高级的编译器,会对只读的串进行合并。所有地址相同的居多。

热点排行