读书人

指针类型的常量 能否改变它所指对象的

发布时间: 2012-03-02 14:40:29 作者: rapoo

指针类型的常量 能否改变它所指对象的值?
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;
}

读书人网 >C++

热点推荐