1:如果条件变量定义了变量则必须初始化,其中会转变为bool型。对于类类型,则得看该类本身情况
2:case标号必须是整型常量表达式
3:不能在switch内部定义变量,因为可能引起后面的case情况使用该变量,而若不经历前面则导致该变量没有定义,故而可以通过语句块让该变量只在语句块中生效。
4:表达式一般结果是右值,但是也有不是的,比如类的取值操作符. 就是A.a就是左值,指针的A->a也是左值;还有对于指针*pt++也是,但是单独对于pt++是右值的。其实质是*pt是左值操作。
5:do while是以分号结束的;且条件处不能定义变量;
6:异常语句,catch,throw,try;
7:try语句块的变量不能用于catch语句块中
8:exception,bad_alloc,bad_cast类只有默认构造函数;其他异常类只有string参数构造函数;
9:异常类只有一个what操作。
10:预处理器来进行调试,#ifndef #endif
11:assert断言,预处理宏,assert(expr);用于处理不可能发生的错误,要是expr为真则正常,要是为假则为错误,就会提示出错。测试很有用。与调试器打开有关,NDEBUG表示调试器,若定义则表示关闭,未定义表示打开;而assert只有在NDEBUG未定义时才起作用,否则无效。