关于const char * 和const int的一个小问题
最近发现使用const int 定义变量时若不设初始值,编译器会报错。然而使用const char * 时却不会,并且使用const char * 明明是const常量,却仍然可以修改其值。
int main() { const int b; //报错 const char * a; a = "hjd"; a = "sdf"; //不会报错 }
发现原来是概念有些混淆,const char * 是常量指针,可以修改地址,不可修改指针指向的值,所以并未违背常量不可修改值的规定。这里由“hjd”变为“sdf”实际上是修改了指针a指向的地址。