这里记录点c++表达式的内容。看似很简单,其实应对不同语言还是有知识可记录的。
1,*p 这样的意思是解引用指向存储区存储的值。而int *p则是一个int类型的指针。
2, 对于一个表达式是否为true或者false 。这个结果和表达式计算的顺序有关系,所以要注意到计算顺序这点。
3, 对于算术运算符%(取摸,求余)如果与负数,那么结果是正还是负,取决于环境(机器)。所以应该注意移植性问题。
4, 在表达式的计算中,不保证一定是从左到右的,所以要注意一些返回bool型的表达式的写法。c++规定具有&&,||符号的表达式,从左到右计算
如
1 if(ia[index++]<ia[index])
3
4 }
5 // 这样的写法未必正确
6 if (ia[index] < ia[index + 1 ])
7 {
8
9 }
10 // 这样正确
5, complex支持:-=,+=,×=,/=,sqrt(),abs(),polar(),sin(),cos(),tan(),exp(),log(),log10(),pow().
通过:real(),imag()分别获取实部和虚部。
6,sizeof :返回一个对象或类型名的字节长度。其也是一个常量。在编译时即能计算出结果。所以可以用来初始化数组长度。char的sizeof永远是1.sizeof用于指针时表示该类型地址所需的内存地址长度。用在对象上则是该引用对象类型的长度。
7,bitset,包含了位操作的一系列方法,简化了位操作的复杂度。bitset<32> b1;一个具有32位的bitset对象。实际是0到31个元素。默认初始化为0;
使用to_string()转换到string类型,to_ulong()转换到无符号long型
其余2个初始化方式 bitset<32> b2(oxffff); bitset<32>b3(21)