常量
const修饰的变量
- 修饰全局变量
- 直接修改 失败
- 通过指针修改 失败,原因是该变量在常量区,禁止修改
- 修饰局部变量
- 直接修改 失败
- 通过指针修改 成功,原因是该变量在栈区
字符串常量
char *s1 = "hello";
与char s2[]= "hello";
-
char *s1 = "hello";
char类型指针变量s1,指向在常量区中的字符串常量
"hello"
首地址,禁止修改字符串"hello"
中的所有字符。如:
s1[0] = 'x';
会报错:引发了异常: 写入访问权限冲突。 -
char s2[]= "hello";
在栈上分配6字节的空间存放字符数组s2中的内容(
'h', 'e', 'l', 'l', 'o', '\0'
)。