绕过const限定符所出现的不可思议情况

来源:互联网 发布:数据集成工程师 编辑:程序博客网 时间:2024/05/18 06:04
搞了一个程序,居然在.C和.CPP环境下出来的结果不同,太不可思议了!闲话少说,程序如下:
test.c版本(c语言):
#include<stdio.h>
int main()
{
 const int*pc;
 int *p;
 const int ic=0;
 pc=&ic;
 p=(int *)pc;
 *p=5;
 printf("%d\n",ic);
 return 0;
}
test.cpp版本(c++):
#include <iostream>
using namespace std;
int main()
{
 const int*pc;
 int *p;
 const int ic=0;
 pc=&ic;
 p=(int *)pc;
 *p=5;
 cout<<ic<<endl;
 return 0;
}
测试结果:
第一个版本的结果为5; 
第二个版本的结果为0;
How unbelievable!!!!!!
特发此贴,求高手指点迷津!
0 0
原创粉丝点击