Code Bye

const char*的问题

都说const char *定义了字符串,就不能再改变了,但是为什么本人在vs2012中这么写也不会报错呀?
const char *str="hello";
str="hi";

但是假如是const int的话就报错了

const int i=5;
i=10;

这是为啥呢?

解决方案

60

const char *str 是指针指向的内容是常量,但指针本身不是常量 ,你可以修改指针指向的东西,但不能修改那个东西的值
假如你要指针是常量 ,要写成char* const str

20

常量指针与指向常量的指针的区别:
http://www.jb51.net/article/37859.htm

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明const char*的问题