c++Primer学习
- 浮点字面值不能带后缀U(u),整数后面不能带后缀F(f)。
- int ival =ival; 是正确的。
- 通常把一个对象定义在它首次使用的地方是一个很好的方法。
- 头文件用于声明而不是定义。但是头文件可以定义类、值在编译时就已知道的const对象和inline函数。317140
- 两个迭代器不能相加,但是可以相减。
- 很多运行时错误都源于使用了未初始化的指针。因此除非所指向的对象已存在,否则不要先定义指针。
- 一个空指针加0,得到另一个值为0指针(空指针)。
- 两个指针减法操作结果是与机器相关的ptrdiff_t类型数据,size_t 也是与机器相关数据类型。
- const size_t kArrSize=10;
int int_arr[kArrSize];
vec<int> int_vec(kArrSize);
几种遍历:
[1] for(size_t i=0; i!= kArrSize; ++i )
[2] for(int *pbegin=int_vec, *pend=int_vec+ kArrSize; pbegin!=pend; ++pbegin)
[3] for(vec<int>::size_type i=0; i!= kArrSize; ++i)
[4] for(vec<int>::iterator iter=int_vec.begin(); iter!=int_vec.end(); ++i)
10. int *pi = new int[10]; 未初始化
int *pi = new int[10](); 初始化 0
动态分配数组,元素只能初始化为元素类型的默认值,不能使用初始化列表为各个元素提供不相同的初值。
11. 在for语句中可以定义多个对象,但是该处只能出现一个语句,即所有对象必须具有相同的类型。如for(int a,int b;….;….) for(int a, string s;…...;…….) 都是错误的。
12. 不能复制数组。
浙公网安备 33010602011771号