指针类型的常量 能否改变它所指对象的值?
char * const name2= "test "; 这是指针类型的常量。不能改变指针本身的值,不能指向其他对象。
const char *name2= "test ";是指向常量的指针,不能改变所指对象的值,但可以改变指针本身,指向其他对象
我想试试指针常量,能不能改变它所指对象的值,代码如下:
char * const name2= "test ";
*name2= 'f ';
cout < <name2 < <endl < <*name2 < <endl;
debug出现正确结果:name2为“fest”。但是运行时出“段错误” ,为什么?
debug信息如下:
Program received signal SIGSEGV, Segmentation fault.
main () at t3.cpp:37
37 *name2= 'f ';
[解决办法]
哎,你还没搞清楚字符串常量 "test "的特性。
和你正试的const指针无关。
[解决办法]
int main
{
char sz[10] = "test ";
char *const cpoint = sz;
*cpoint = 'u ';
cout < < sz < < endl;
return 0;
}