Lv.的博客
摘要: 1.指针常量 从字面意思可以看出,指针是一个常量,也就是地址不能被修改。 int* —— const p 特点是指针指向的数值可以改变,然而指针所保存的地址却不可以改变。 #include <iostream>using namespace std; void main(){ int a = 10; 阅读全文
posted @ 2016-03-07 13:26 Avatarx 阅读(1317) 评论(0) 推荐(0)
摘要: mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个 阅读全文
posted @ 2016-03-07 10:52 Avatarx 阅读(313) 评论(0) 推荐(0)
摘要: 一、结论 声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const。 C++ const 修饰符,表示常量,即如果以后保证不会修改则声明为const,否则若要修改,那一开始为什么还要声明为const呢? 根据C++标准,对于修改const 阅读全文
posted @ 2016-03-07 10:48 Avatarx 阅读(1904) 评论(0) 推荐(0)
摘要: volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在D 阅读全文
posted @ 2016-03-07 10:40 Avatarx 阅读(337) 评论(0) 推荐(0)
摘要: register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。 一、皇 阅读全文
posted @ 2016-03-07 10:09 Avatarx 阅读(202) 评论(0) 推荐(0)