1、函数指针
已知fun(int)是类Test的公有成员函数,p是指向成员函数fun()的指针,则p=&Test::fun。
2、struct和union内存对齐问题
规则:1)可以使用#pragma pack(n),n=1,2,4,8,16来规定对齐系数。
2)每个结构体数据成员,将其类型的大小与n作比较,取较小值作为真正的对齐系数。之前所有数据成员大小必须是对齐系数的整数倍,否则在前面先增加大小,补齐整数倍。
3)对于整个结构体,取结构体内最大的数据类型,将其与n作比较,选出最较小的作为对齐系数,然后看整个结构体大小是否是对齐系数的整数倍,如果不是,则增加结构体大小。
如:
//其中int为4字节 char为1字节
struct _THUNDER{
int iVersion;
char cTag;
char cAdv;
int iUser;
char cEnd;
}Thunder;
int sz = sizeof(Thunder);
其大小为:4 1 1 (3) 4 1 ((2)) = 16
//其中char为1字节,int为2字节,float为4字节
struct stu
{
union{
char bj[5];
int bh[2];
} class;
char xm[8];
float cj;
}xc;
其大小为: 5 ((1)) 8 (2) 4
3、printf的格式控制符中%%表示打印%字符
4、构造函数不能是虚函数
5、二叉树遍历:中序(左根右) 前序(根左右) 后序(左右根)
6、定义数组时不能省略第二维或者更高维的大小
7、指针数组和数组的指针
char
(*a) [10] ; 指向数组的指针
char
*a [10] ; 指针数组