关闭

【面试题】 字符和字符串

标签: 面试题
372人阅读 评论(0) 收藏 举报
分类:
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"会放到不同的内存中。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:100104次
    • 积分:2088
    • 等级:
    • 排名:第18285名
    • 原创:95篇
    • 转载:86篇
    • 译文:0篇
    • 评论:0条