1:真
0:假
算术表达式的未定义的结果:(1)数学性质本身(2)源于计算机的特点,例如溢出等等
整数相除还是整数
成员访问运算符:点运算和箭头运算符
点运算:用于获取类对象的一个成员,
箭头运算符与点运算符有关
ptr->mem等价于(*ptr).mem
*ptr.mem (x) ptr是一个指针,没有size成员。
<<:左移
>>:右移
&:位与
|:位或
&&:逻辑与
||:逻辑或
sizeof():返回一条表达式或者一个类型名字所占的字节数
sizeof()满足右结合律,其所得的值是一个size_t类型
sizeof(ia)/sizeof(*ia):得到数组的大小
,逗号运算符的结果是右侧的值
如果两种类型可以相互转换,则他们是关联的。
隐式转换:算数转换,数组->指针,指针的转换,布尔,常量
显示转换:
(1)static_cast:任何具有明确定义的类型转换,只要不包含底层const,都可以使用
(2)const_cast:只能改变底层的const
(3)reinterpret_cast
(4)dynamic_cast
第五章 语句
switch语句:
case标签必须是整型常量表达式
switch(ch)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
++count;
break;
default:
break;
}
do
{
……
}while();
break:就近原则,最近的循环或者switch
continue:终止最近循环中的当前迭代并且立即开始下一次迭代
区别:
break语句使程序跳到switch或者整个循环体后面 的语句处继续执行。
continue语句使程序跳过switch或者循环体内部continue后面的语句,继续新一轮的循环
goto:
try{
}
catch{
}
throw{
}