c++ 指针初始化问题
const int *p = 123 错误
const char *p="你好"正确
本人查了一下c++ primer
上面说指针初始化和赋值只接受四种值:
1、0
2.同类型的地址
3.同类型的另一指针
4.另一对象的下一个指针
由此可见第一种很显然是错误的 但是为什么第二种就正确? 这是特例吗?
[解决办法]
const char *p="你好"是把字符串"你好"的首地址(类型为char*)附给同类型的p,符合你的条件2
[解决办法]
“你好”赋给P的是地址。
而第一个是直接把123赋给了*p;
第一个可以这样改
int a = 123;
const char *p = &a;
[解决办法]
123是整形,你需要做类型转换为指针。