首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++ 指针初始化有关问题

2013-10-17 
c++ 指针初始化问题const int *p 123 错误const char *p你好正确本人查了一下c++ primer上面说指针初

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是整形,你需要做类型转换为指针。

热点排行