您的位置:首页 > 职场人生

【面试题】 字符和字符串

2013-12-04 20:30 190 查看
1. 解释下列输出结果
char str1[] = "abc";
    char str2[] = "abc";
    const char str3[] = "abc";
    const char str4[] = "abc";
    const char *str5 = "abc";
    const char *str6 = "abc";
    char *str7 = "abc";
    char *str8 = "abc";
    cout << ( str1 == str2 ) << endl;
    cout << ( str3 == str4 ) << endl;
    cout << ( str5 == str6 ) << endl;
    cout << ( str7 == str8 ) << endl;
结果是:0 0 1 1

解答:

str1, str2, str3, str4 是数组变量,它们有各自的内存空间,应该使用strcmp比较;
而str5, str6, str7, str8 是指针,它们保存的地址都是"abc"常量的地址。这是和编译器有关的,若编译器支持"常量字符串合并",那么"abc"=="abc",否则,这两个"abc"会放到不同的内存中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐