今天正好看到一个问const的问题就把以前的笔记拿出来分享一下,笔记参考的是C语言深度剖析。
const:含义是请作为常量使用,而并非放心吧,那肯定是个常量。
volatile:含义是请不要做没谱的优化,这个值可能变掉的,而并非是你可以修改这个值。
const修饰的变量不允许被修改不代表不允许别处修改。
eg:
int i = 5;
const int *p = &i;
*p = 6; //不可以
i = 7; //完全可以,而且那个“const”的“*p”也跟着变成了7.
需要明白的“volatile”的含义并非是“non-const”,所以他们是可以放在一起的,所以当我们看到const volatile int i = 10;不要惊讶。