金庸群侠传x离开队友:跪问.........
来源:百度文库 编辑:高考问答 时间:2024/04/30 05:16:27
# include <iostream.h>
void main()
{
const int M=10;
int *y=&M;
cout<<y<<endl;
}
为什么用这个程序不能输出M的地址值,编译时出现这样的错误提示'initializing' : cannot convert from 'const int *' to 'int *'???
void main()
{
const int M=10;
int *y=&M;
cout<<y<<endl;
}
为什么用这个程序不能输出M的地址值,编译时出现这样的错误提示'initializing' : cannot convert from 'const int *' to 'int *'???
指针是有类型的,不同类型指针指向不同类型的对象。
不同类型的指针不能赋值运算。
const int 和 int 是不同的类型。
可改成同是int或同是const int就可以了。
#include <iostream.h>
void main()
{
const int M=10;
const int *y;
y= &M;
cout<< *y<<endl;
}
输出10
c++ 安全特性,为了防止试图篡改常数,所以把常数指针负值给变量指针的类型转换时不允许的,所以你无法把常数指针负值给变量指针
int *y=&M;
修改为
const *y = &M;
爱卿平身,朕不晓得
int *y=&M; 变为int y=&M;
是的,int *y=&M是变量
同雨愁轩,亲自调试一下不就知道了?