#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
volatile int x1=11;
x1=15;
const int x2=86;
cout<<x1<<endl;
cout<<x2<<endl;
return 0;
}
volatile表示不知道何时会改变,随时有可能有改变,并且随时可以改变。因此编译器对访问该变量的代码不能进行优化,提供对它的稳定访问。
const表示不会也不能改变。
15
86
Hit any key to continue...
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
const int x2=86;
x2=19;
cout<<x2<<endl;
return 0;
}
编译错误,因为x2是const不能改变。
/home/myhaspl/pro/learn/cpplearn1/cpplearn1/main.cpp: In function 'int main(int, char**)':
/home/myhaspl/pro/learn/cpplearn1/cpplearn1/main.cpp:8:7: error: assignment of read-only variable 'x2'
8 | x2=19;
| ~~^~~
18
Hit any key to continue...
const_cast可完成从const的转换,使const变量可更改,同时也可完成volatile的转换,转换成非volatile类型。