基本语言
时间:2010-03-29 来源:xiantaozhaowei
******************************************************************
快速入门
1. Windows编译程序:cl -GX prog.cpp
2. Windows查看程序上次运行错误:echo %ERRORLEVEL%
3. Windows键盘输入文件结束符:CTRL + Z
4. Unix/Mac键盘输入文件结束符:CTRL + D
******************************************************************
第一部分 基本语言
******************************************************************
变量和基本类型
1. 255 是-1对256求模的值
2. 使用unsigned类型计数可以避免越界导致结果为负数的可能
3. 左值:变量的地址,或者是一个代表对象内存中的位置的表达式
右值:变量的值
*4. 直接初始化和复制初始化的区别
5. 非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显示
指定它为extern
6. 非const引用只能绑定与该引用同类型的对象
const引用则可以绑定到不同但相关的类型的对象或绑定到右值
******************************************************************
标准库类型
1. vector的下标只能对确定已存在的元素进行操作
2. 任何改变vector长度的操作都会使已存在的迭代器失效
******************************************************************
数组和指针
1. 引用与指针的区别:引用未初始化会导致编译错误;对引用赋值是修改所引用的对象
2. const int *p:可以理解为自以为指向const的指针
3. typedef string *pstring; const pstring cstr意义: cstr定义为指向
string类型对象的const指针,typedef不做文本扩展,修饰pstring类型
******************************************************************
表达式
1. 位操作符不能确保如何处理其操作数的符号位,建议用unsigned 整形操作数
2. 置位27位的两种方式:bitset_quiz1.set(27); int_quiz1 |= 1UL<<27
3. 复位27位的两种方式:bitset_quiz1.reset(27);int_quiz1 &= ~(1UL<<27);
4. 得到27位的两种方式:bitset_quiz(27);int_quiz1 & (1UL<<27);
5. 只有在必要时才使用后置操作符
6. 自增操作符优先级高于解引用:*iter++等同于*(iter++)
7. (*p).foo 正确 ;*p.foo 错误
******************************************************************
语句
1. VC 下的DEBUG编译方式为定义NDEBUG宏,而RELEASE定义了NDEBUG宏
******************************************************************
函数
1. 函数必须定义返回类型
2. 函数形参是引用类型时,传递右值和类型不完全匹配的实参是不允许的
3. 应该将不需要修改的引用形参定义为const引用
4. int *&v1 v1是一个引用,与指向int型对象的指针相关联
5. C++程序员倾向于通过传递指向容器中需要处理的元素来传递容器
6. 将数组形参直接定义为指针要比使用数组语法定义更好
7. 不需要修改数组形参的元素时,函数应该将形参定义为指向const对象的指针
8. int (&arr)[10]; //arr is a reference to an array of 10 ints
int &arr[10]; //arr is an array of references
9. int (*ip) [4] //pointer to an array of 4 ints
int *ip[4]; //array of points to int
10. 当函数需要处理数组且函数体不依赖数组长度时应使用指针形参,其他情况
应使用引用形参
11. cstdlib.h 中为return语句定义了EXIT_FAILURE 和EXIT_SUCCESS宏
12. 内联函数应该定义在头文件,必须对编译器可见
13. const对象,指向const对象的指针或引用只能用于调用其const成员函数,如果
尝试用它们调用非const成员函数将是错误的
14. 合成的默认构造函数一般适用于仅包含类类型成员的类,对于含有内置类型或
复合数据类型成员的类,则通常应该自定义默认构造函数
15. 两函数参数和返回类型完全相同,那么第二个函数是第一个函数的重复声明
两函数参数相同,返回类型不同,那么第二个函数声明是错误
16. 非引用函数形参是否定义为const并无区别
******************************************************************
标准IO库
1. IO对象不可复制或赋值
2. 如果程序员需要重用文件流读取多个文件,必须在读另一个文件之前调用clear
清楚该流的状态
3.
快速入门
1. Windows编译程序:cl -GX prog.cpp
2. Windows查看程序上次运行错误:echo %ERRORLEVEL%
3. Windows键盘输入文件结束符:CTRL + Z
4. Unix/Mac键盘输入文件结束符:CTRL + D
******************************************************************
第一部分 基本语言
******************************************************************
变量和基本类型
1. 255 是-1对256求模的值
2. 使用unsigned类型计数可以避免越界导致结果为负数的可能
3. 左值:变量的地址,或者是一个代表对象内存中的位置的表达式
右值:变量的值
*4. 直接初始化和复制初始化的区别
5. 非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显示
指定它为extern
6. 非const引用只能绑定与该引用同类型的对象
const引用则可以绑定到不同但相关的类型的对象或绑定到右值
******************************************************************
标准库类型
1. vector的下标只能对确定已存在的元素进行操作
2. 任何改变vector长度的操作都会使已存在的迭代器失效
******************************************************************
数组和指针
1. 引用与指针的区别:引用未初始化会导致编译错误;对引用赋值是修改所引用的对象
2. const int *p:可以理解为自以为指向const的指针
3. typedef string *pstring; const pstring cstr意义: cstr定义为指向
string类型对象的const指针,typedef不做文本扩展,修饰pstring类型
******************************************************************
表达式
1. 位操作符不能确保如何处理其操作数的符号位,建议用unsigned 整形操作数
2. 置位27位的两种方式:bitset_quiz1.set(27); int_quiz1 |= 1UL<<27
3. 复位27位的两种方式:bitset_quiz1.reset(27);int_quiz1 &= ~(1UL<<27);
4. 得到27位的两种方式:bitset_quiz(27);int_quiz1 & (1UL<<27);
5. 只有在必要时才使用后置操作符
6. 自增操作符优先级高于解引用:*iter++等同于*(iter++)
7. (*p).foo 正确 ;*p.foo 错误
******************************************************************
语句
1. VC 下的DEBUG编译方式为定义NDEBUG宏,而RELEASE定义了NDEBUG宏
******************************************************************
函数
1. 函数必须定义返回类型
2. 函数形参是引用类型时,传递右值和类型不完全匹配的实参是不允许的
3. 应该将不需要修改的引用形参定义为const引用
4. int *&v1 v1是一个引用,与指向int型对象的指针相关联
5. C++程序员倾向于通过传递指向容器中需要处理的元素来传递容器
6. 将数组形参直接定义为指针要比使用数组语法定义更好
7. 不需要修改数组形参的元素时,函数应该将形参定义为指向const对象的指针
8. int (&arr)[10]; //arr is a reference to an array of 10 ints
int &arr[10]; //arr is an array of references
9. int (*ip) [4] //pointer to an array of 4 ints
int *ip[4]; //array of points to int
10. 当函数需要处理数组且函数体不依赖数组长度时应使用指针形参,其他情况
应使用引用形参
11. cstdlib.h 中为return语句定义了EXIT_FAILURE 和EXIT_SUCCESS宏
12. 内联函数应该定义在头文件,必须对编译器可见
13. const对象,指向const对象的指针或引用只能用于调用其const成员函数,如果
尝试用它们调用非const成员函数将是错误的
14. 合成的默认构造函数一般适用于仅包含类类型成员的类,对于含有内置类型或
复合数据类型成员的类,则通常应该自定义默认构造函数
15. 两函数参数和返回类型完全相同,那么第二个函数是第一个函数的重复声明
两函数参数相同,返回类型不同,那么第二个函数声明是错误
16. 非引用函数形参是否定义为const并无区别
******************************************************************
标准IO库
1. IO对象不可复制或赋值
2. 如果程序员需要重用文件流读取多个文件,必须在读另一个文件之前调用clear
清楚该流的状态
3.
相关阅读 更多 +