字符串恒量(疑问-待解决)
字符串常量(疑问-待解决)
请各位帮忙解决一下:
char *p = "hello";
此时“hello”是一个存储于常量的静态存储区。p指向它,不过p只是一个局部指针。
1、那么我想问此时这句话执行完,p会变为const-point吗?
2、我执行p[0] = 'x';这句话出错了,我想“hello”存储在常量区是不可以修改的。那么“hello”是会将首地址给p,且该指针是const的,所以不能修改该值。我这样理解对嘛?
3、char p[] = "hello";p[0] = 'x';执行这两句话是对的,那么此时“hello”是存在栈区还是静态存储区,如果还是存储在静态存储区那p[0] = 'x'为什么是对的呢?
- 2楼helinlin007昨天 16:15
- 发论坛吧
- 1楼whoozit昨天 11:01
- 1、不会。p就是个局部指针,存放的地址是静态存储区的而已。n2、那么“hello”是会将首地址给p,所以不能修改该值——不能修改静态存储区,和指针、const不搭嘎。n3、char p[];定义的是 一个数组,数组的内容是“hello”,数组是在栈区的,可以修改。