C++笔试题练习笔记

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] ;     指针数组




猜你喜欢

转载自blog.csdn.net/Na2Co3_Ren/article/details/79431082