- 论坛徽章:
- 0
|
以下是引用:
2、指针是const还是data为const?
辨别方法很简单,如下:
代码:
char *p="hello"; //non-const pointer, non-const data;
const char *p="hello"; // non-const pointer, const data;
char * const p="hello"; // const pointer , non-const data;
const char * const p="hello"; // const pointer, const data;
要注意的是,"hello"的类型是const char * ,按C++standard规则,char *p="hello" 是非法的(右式的const char* 不能转换为左式的char *),违反了常量性。但是这种行为在C中实在太频繁,因此C++standard对于这种初始化动作给予豁免。尽管如此,还是尽量避免这种用法。
问题:const char * 为什么不能转换为左边char *,什么叫违反常量性???
=号左边是个变量 右边是个常量,这样赋值都不行的话,常量还怎么用。。。 让人费解 |
|