牛客网C/C++每日一刷知识点更新(2)

1.编译器为类自动合成构造函数有以下情况:

  • 有class1,class2,2中有1类型成员而2没有构造函数但1有,此时编译器会自动生成。
  • 在继承中,基类定义构造函数,而派生类没有定义,派生类会自动生成
  • 在虚拟继承中自动生成构造函数用来填写偏移量表格地址。
  • 类中有虚函数,自动合成构造函数来初始化虚表

2.下面结构体的大小是_____:

struct s1 {
    char ch, *ptr;
    union {
        short a, b;
        unsigned int c:2, d:1;
    }
    struct s1 *next;
};
  • ch 一个字节 ,但要字节对齐,所以是4个字节
  • *ptr 指针 在32为机器侠,是4个字节
  • union 取最长的变量的字节数, 是4个字节
  • *next 也是指针, 4个字节
    加起来是16个字节。

3.strlen()返回的是字符串的实际长度,跟内存占用没关系,sizeof才是计算所在空间大小的,以字节为单位

4.fread(pt,size,n,fp)指从fp指定的文件中读取长度为size的n个数据项,存入pt所指向的内存区,但由于这里是循环读取,每次循环读取一个,所以n=1

5."Computer Department"字符串是以隐含字符\0为结束符的字符数组,故所占的空间为:18个字母+空格空串+隐含字符\0=20

发布了39 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43443900/article/details/103781228