不想从第一章开始看起,看目录觉得对第五章中的bitset和sizeof有点兴趣,嗯,研究一下。
1、if(ival),ival作为一个条件表达式,非0时,if条件成立。表达式结果是右值,可读取结果,不能对它进行赋值。
2、短路求值:逻辑与和逻辑或总先计算左操作数。且只在左操作数无法确定结果时,才会求解右操作数。
3、bool:false用0表示,true用1表示。
4、赋值操作具有右结合性。
5、学会习惯使用这种表达方式,if(42==i)
6、Sales_item *sp = &item1; *sp.same_isbn(item2); //error,应该为(*sp).same_isb(item2);或者sp->same_isb(item2);
7、sizeof返回类型为size_t,长度的单位是字节。
8、逗号表达式从左向右计算,结果是其最右边表达式的值,如果最右边操作数是左直,则逗号表达式也是左直。
9、C++保证删除0值的指针是安全的。删除指针后,该指针为悬垂指针,悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。一旦删除指针所指向的对象,立即将指针置为0,这样就非常清楚地表明指针不再指向任何对象。
10、最简单的算术转换为整型提升,转换本质上依赖于机器。
2.1.1节 整型:
1、char类型为单机器字节byte。wchar_t用于扩展字符集,如汉字和日语。
2、C++的内置类型与其在计算机的存储器中的表达式密切相关。 通常8位的块作为一个字节。32位或4个字节作为一个字(word)。
3、736425: 0 1 1 1 0 0 0 1。要让地址为736425的字节有意义,必须知道其类型。例如,8位无符号整数:112。
4、signed由编辑器自由决定如何用位来表示。符号位0代表正数。
5、超出其范围的值赋给一个指定类型的对象,结果取决于这种类型是signed还是unsigned。unsigned:编辑器对数求模,然后取所得值。例如:-1赋给8位unsigned char,结果是255。
6、算术类型的存储空间依机器而定。存储空间指用来表示该类型的二进制位数。
类型 | 最小存储空间(bit) |
bool | - |
char | 8 |
wchar_t | 16 |
short | 16 |
int | 16 |
long | 32 |
float | 6位有有效数字 |
double | 10位有效数字 |
long double | 10位有效数字 |