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

posted @ 2018-09-05 00:16  佟歌  阅读(270)  评论(0编辑  收藏  举报