C++学习笔记(一)
使用静态类型的编程语言实在编译时执行类型检查,而不是在运行时执行类型检查。C++属于静态类型语言。
面向对象四大特性:封装、继承、抽象、多态。
标准C++三个重要部分组成:核心语言、C++标准库、标准模板库(STL)。
ANSI标准,确保C++的便携性,我理解为跨平台性。
C++主要用于与硬件设备相关的程序、教学和研究、系统的用户接口等。
七种基本C++数据类型:bool, char, int, float, double, void, wchar_t.
一些基本类型可以使用一个或多个类型修饰符进行修饰: signed, unsigned, short, long.
变量的长度会因为编译器和电脑的不同而不同,想确定变量的长度的时候,可以使用sizeof()函数来确定。例如sizeof(int),sizeof(bool)等。
想确定最大值和最小值可以用(numeric_limits<类型>::max)()和(numeric_limits<类型>::min)()来确定,例如(numeric_limits<unsigned char>::max)(),(numeric_limits<size_t>::min)()。
枚举类型限定变量的值,当变量只有几种可能的值的时候,使用枚举类型。如果枚举类型没有赋初始值的时候,枚举类型默认从0开始,依次加1。
enum color { red, green=5, blue };
这里,red=0;green=5;blue=6;
左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
右值(rvalue):指的是存储在内存中某些地址的数值。右值是不能进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
三种变量:局部参数,形式参数,全局变量。
局部变量被定义时,系统不会对其执行初始化,必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:
C++中整数后面加U或u代表无符号整数常量。后面加L代表长整数常量。0x前缀代表十六进制。以大写L开头,后面用单引号括起来的字符为宽字符常量(如L'x')。
C++中的bool类型对应的true和false都是小写。
C++中定义常量的两种方式:#define预处理器和const关键字。
例如:
#define LENGTH 10 const int LENGTH=10;
通常习惯将常量定义为大写字母。
限定符:
const | const 类型的对象在程序执行期间不能被修改改变。 |
volatile | 修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率。 |
restrict | 由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。 |
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。
参考:https://www.cnblogs.com/reality-soul/p/6140192.html