把非const变量赋值给指向const的指针,改变变量,不报错?
- C/C++ code
#include<iostream>using namespace std;int main(){ int i =2; const int j=i; const int *pic=&i; int *const cpi=&i; //string *const pstring while(i<11) { i++; cout<<*pic<<endl; cout<<*cpi<<endl; } system("pause"); return 0; }求解
[解决办法]
const 修饰的变量所谓的常量属性是由编译器保证的
const int *pic=&i;
这里意味着编译器不允许你通过Pic修改i的值,但是你直接修改i的值是没任何问题的,因为i本身就没有所谓的常量属性。