1.
大多数计算机都以2的整数次幂个比特为块来处理内存,可以寻址的最小内存块称为“字节”,存储的基本单元为“字”,字由字节组成,字节大多数由8比特构成。
2.
无符号类型仅能表示大于0的值
注意:与其余的内置类型相比,这个字符型要分为三类:char、signed char、unsigned char ,但是这里的char不是指它是另一种类型,而是不同的编译器导致char有可能是无符号,也有可能是有符号整数,具体是什么由编译器决定
3.
当我们赋给带符号类型的一个超出它范围的值时,结果是未定义的——程序可能继续工作,但也有可能崩溃,产生垃圾数据
4.
注意:当从无符号数中减去一个值时,不管这个值是不是无符号数,都必须确保这个结果不是一个负值
例如:
unsigned u1=42,u2=10;
cout<<u2-u1<<endl;
这个的结果又编译器而定,结果不是负数,是取模之后的值,我的电脑上显示为4294967295这个数字是4字节的无符号数的最大值
5.
类型short没有对应的字面值
6.
严格来说,十进制字面值不会是负数,如果有负数,那它不算在字面值里面,它只是表示对字面值取负值而已
7.
\后面跟着的八进制数字超过了三个,只取前三个数字与\构成转义序列
而\x后面跟着的数字都要计入转义序列的化简中
8.
对象是一块可以存储数据并且具有某种类型的内存空间
9.
初始化不等于赋值
初始化——创建变量时赋予一个初始值
而赋值——把对象当前值给擦除,以一个新的值代替
10.
在C++11新标准中,利用花括号来初始化变量可以全面应用,不受限制,这种形式称为列表初始化
但是注意,当使用列表初始化但是如果有存在数据丢失的情况,编译可能就会出错
11.
声明和定义不一样
声明使得名字为程序所知道,规定了变量的类型和名字
1)无显性初始化
2)在类型前加上extern即可
eg。extern int i就是声明i
定义就是负责创建与名字关联的实体
变量只能定义一次,但可以声明多次,由于在多个文件中使用同一个变量,其定义只能出现在一个文件里,但其余要使用的话就要对其声明,不能重复定义
12.
C++是一种静态类型语言,其含义是在编译阶段检查类型,这个过程称为类型检查
13.
定义在函数体内的内置类型的对象,如果没有初始化,则其值未定义,类的对象如果没有线性初始化,则其值由类决定
对于string类规定,如果没有指定初值则生成一个空串
一些类需要每一个对象都显性初始化, 否则会出错