基本语法
数组和指针
在函数体外定义的数组,其元素均初始化为0;在函数体内定义的内置类型的数组,其元素无初始化。不管数组定义在哪里,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化。数组是不允许直接复制和赋值的。
指针和引用的区别:①引用总是指向某个对象,定义引用时没有初始化是错误的。②给引用赋值时改变的是引用所关联的对象的值,而不是使引用与另一个对象关联。
不允许一个非const对象指针指向一个const对象。允许吧非const对象地址赋值给一个指向const对象的指针。
指向const对象的指针 const int *p;
const 指针:int *const p; //定义时必须初始化
释放动态申请的数组时要用delete[] p;不能只是delete p;这样会造成内存泄露。
typedef String *pstring;
const pstring cstr;==String * const pstring;
因为const形容的是cstr,所以要放在它们中间。
表达式
求模的操作数只能为整数类型,如bool,char,short,int,long。如果两个数都是负数,求模的结果为负数或者零,如果一正一负,则结果视机器或编译器而定。
在一个表达式里,不要在两个或更多的子表达式中对同一个对象做自增或自减操作。这样的行为时未定义的。
对于包含signed和unsigned型的表达式,signed型会被转换为unsigned型。
如果逗号操作符最右边的操作数是左值,则逗号表达式的值也是左值。