所有的字符串常量都被放在全局区的静态存储区
这歌笔记只为说明一个问题
char str1[]="abcd";
char str2[]="abcd";
const char str3[]="abcd";//被const修饰的数组,如果是局部变量是存放在栈上的只读数组,不能修改
const char str4[]="abcd";
const char str5[]="abcd";
const char str6[]="abcd";
char *str7="abcd";
char *str8="abcd";
cout<<(str1==str2)<<endl;//0
cout<<(str3==str4)<<endl;//0
cout<<(str5==str6)<<endl;//1
cout<<(str7==str8)<<endl;//1
str1、str2、str3、str4是数组变量,他们有各自的存储空间,字符数组作为局部变量存放在栈上。
str5、str6、str7、str8是指针,“abcd是存放在静态存储区里面而且是全局的,他们指向同一块内存空间,所以地址是一样的”