C和C++的一处小知识点(小坑)
作者:互联网
在C语言中
void main(){ const int i = 0; int *j = (int *)&i; *j = 1; printf("%d,%d", i, *j); system("pause"); }结果输出为1,1 在C++中
#include<iostream> using namespace std; int main(void){ const int i=0; int *j = (int *)&i; *j = 1; printf("%d,%d", i, *j); system("pause"); return 0; }结果输出为0,1 为什么同样的代码C和C++输出结果不一致? 原因: C语言const变量在运行时改变了是可以再次读出改变后的值的; C++中const变量在编译的时候已经确定了; 同一个地址,即同一个变量。C++中const变量确实别改变了。i的值没有更新而已。
标签:知识点,pause,const,变量,int,C++,printf,小坑 来源: https://www.cnblogs.com/yinguojin/p/16611453.html