21
2020
03

栈内存与文字常量区

    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;//0  分别指向各自的栈内存

  cout << ( str3 == str4 ) << endl;//0  分别指向各自的栈内存

  cout << ( str5 == str6 ) << endl;//1指向文字常量区地址相同


  cout << ( str7 == str8 ) << endl;//1指向文字常量区地址相同


  结果是:0 0 1 1


  解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。