#include <iostream> #include <string> using namespace std; int main() { int i=-1; const int ic=i; const int *pic=⁣ int *const cpi=⁣ const int *const cpic=⁣ } 出现error C2440: 'initializing' : cannot convert from 'const int *' to 'int *const '错误 这是为什么?
问题出现在int *const cpi=⁣这一行 可不可以说得具体点 我是新手 谢谢
2010-12-14 13:13
提问者采纳
这个问题首先得理解指针常量和常量指针的区别,简单的说指针常量即指针是常量,也就是指针的指向不能再改变了。常量指针即指针指向的内容是常量,即指针指向的内容是不能改变的。 一般区分这两种指针可以看const的位置,如果定义的时候再 * 前则为常量指针,在 * 后面则为指针常量。问题中对const变量ic取址即类似于定义了一个常量指针,而 int *const cpi则定义了一个指针常量。两个完全不一样的东西赋值,因此会报类型转换错误! 语言表达能力有限,希望对你有所帮助,嘿嘿。