c++问题等高手

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:07:29
下面程序的输出是什么?为什么?解释下为什么。
#include<iostream>
using namespace std;
int main( void )
{
const int i=0;
cout<<"i="<<i<<endl;
int *p=(int*)&i;
*p=100;
cout<<"i="<<i<<endl;
cout<<"*p="<<*p<<endl;
return 0;
}

最后的输出是:
i值不允许改变的错误提示,编译不了!
-_-#
如果要强行运行还可以的……结果应该是i=0,i=0,*p=100!
但程序写成这样就无意义了

出现错误,const int i,i的值不可修改

0
0
100
const只是编译期检查,对运行期的没办法控制

#include<iostream>
using namespace std;
int main( void )
{
const int i=0; //因为定义了i为const常量,所以,i的值,不变
cout<<"i="<<i<<endl; //输出i=0
int *p=(int*)&i;
*p=100;
cout<<"i="<<i<<endl; // 输出i=0
cout<<"*p="<<*p<<endl; //输出*p=100
return 0;
}
帮你运行了下,可以运行,我不知道为什么他们说不能运行,
运行结果是:
i=0
i=0
*p=100
希望对你有所帮助,尽力了~