分类: C/C++
2014-06-08 22:49:41
——任何规则都不可能完全一致,以至于不能容许任何例外
一、基本类型
1. 指针:指向常量的指针 vs 指向指针的常量
a. 指向常量的指针:const char *p
b. 指向指针的常量:char* const p
2. 引用:声明时必须赋值
3. 指向void的指针:可以从别的指针类型转换为void*, 反之必须适用static_cast
4. new: 返回指针,对象分配在堆
a. 异常函数set_new_handler(fn)
5. static_case:相近类型的转换,reinterpret_case是完全不相关的类型的转换——最好都不用
6. 递归与迭代:其实迭代更接近循环,是对另外函数的调用;递归是对自身的调用,必须有递归出口,否则无限循环
7.extern
a. 声明变量:表明变量在本文件之后或者其他文件中定义,提供多个文件使用同一个变量的功能
b. 函数声明:同上
c. extern "C":函数用C的标准编译
8. 函数指针
a. void (*fp)(string) //声明函数指针可以指向的原型(参数,返回值)
b. void error(string s) //可以被指向的函数实体
c. fp =&error //赋值函数指针
d. fp("abcd") //通过指针调用函数
9. 不定数目的函数参数:printf(const char* s ...)
10. atexit:注册程序退出时的执行代码
a. 代码顺序:定义对象1->atexit(函数)->定义对象2
b. 销毁顺序:销毁对象2->定义函数->销毁对象2
11. 名字查找
namespace xxx {
class type1{};
void f(type1)
}
void main()
{
void f(xxx::type1 t) //正确, 会到xxx中找f定义
}