字符串常量
#include <Iostream>
using namespace std;
int main()
{
char str1[]="Hello";
char* p1="Hello"; //指针变量指向字符串的地址
char* p2="Hello"; ..指向同一个地址
str1[0]='h';
//p1[0]='h'; //常量区不可被修改
//p2[0]='h'; //常量区不可被修改
p1="world";
p2="world";
//str1="world"; //字符串名是常量区地址,不可改变
return 0;
}
原因:
全局变量,静态变量在全局区
代码放在代码区
但是代码中的字符串在程序启动时,被放到常量区,即字符串常量
只有在初始化时,字符串常量才会一一对应的放入栈区,且该字符串本质是一个地址,比如
#include <Iostream>
using namespace std;
int main()
{
printf("%c\n","how are you"+4);
//打印出are you,因为相当于首地址
printf("%c\n","how are you"+4);
//会打印出a,因为相当于首地址
return 0;
}
小天才公司福利 1222人发布
查看22道真题和解析
