C/C++笔试基础知识

1、 int *a[10] :指向int类型的指针数组a[10]

  int (*a)[10]:指向有10个int类型数组的指针a

  int (*a)(int):函数指针,指向有一个参数并且返回类型均为int的函数

  int(*a[10]) (int):函数指针的数组,指向有一个参数并且返回类型均为int的数组

2、C++中,可以被派生类继承的函数是成员函数

3、char *p ()   指针函数,是函数

   char (*p) ()    函数指针,是指针

4、union test

扫描二维码关注公众号,回复: 7557929 查看本文章

{

  int x; char y; float z;

}

  联合的大小是4个字节,因为联合体大小是由最大的成员大小决定

5、int a = 0; int b =(a = -1) ? 2: 3;

      int c = (a = 0)? 2:3;

   因为b = -1,非零,为真,故b = 2, c = 0,为零,为假,故c = 3

6、构造函数初始化时必须采用初始化列表的三种情况:

  1)需要初始化的数据成员是对象;

  2)需要初始化const修饰的类成员;

  3)需要初始化引用成员数据。

7、VirtualAlloc是WinAPI函数,功能:调用进程的虚地址空间,预定或提交一部分页。

  MEM_RESERVE 保留地址空间,不分配物理内存。

  PAGE_READONLY 试图访问区域中的页时,会被拒绝访问。

  PAGE_NOACCESS 任何访问都会被拒绝。

8、C++函数只能平行定义,不能嵌套定义,但是可以嵌套声明。且在C++中,main函数的位置可以在任意地方。

9、X&(X-1)统计X中1的个数,

   X| (X-1)统计X中0的个数。(X为二进制)

10、main函数里参数char *argv[ ]等价 char **argv,即char *s[ ] 等价于 char **s.

11、成员函数操作两个对象时,只需传递一个对象参数,另一个是调用成员的this,友元函数则需要两个对象参数。

12、动态链接库的优点:共享、开发模式好,减少页面交换

   静态链接库的优点:装载速度快

13、malloc:需要头文件 stdlib.h;返回值是一个指针。

   在C中,使用malloc不需要强制转换,在C++中需要强制转换。

14、引用是被应用变量的别名

15、基类函数与派生类函数返回值类型与异常规格必须匹配

16、静态成员可以作为默认实参,非静态成员不能作为默认实参。当调用函数时,内部变量开始占用存储单元

17、##是一种分隔连接方式,作用是:先分隔,然后进行强制连接

18、内部静态类变量的可见性与存在性不一致。存在性:生命周期;可见性:指能访问到该内部静态类变量

19、x++只能作为右值,而++x既可以作为左值,也可以作为右值

20、char data [0] 柔性数组,也称变长数组。只作为一个符号地址存在,而且必须是结构体的最后一个成员

21、线程有自己的栈,局部变量存储在栈中,所以局部变量以外的变量都需要设置保护

22、私有成员,类中提供的成员函数可以直接使用它们,友元函数也可以直接使用它们。

23、后序遍历的顺序:左、右、根,前序遍历的顺序:根、左、右

24、折半查找的时间复杂性为:O(nlog n)

25、在n个有序顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动的元素次数是 n / 2

26、将n个不同的数据进行交换排序,至多需要比较n(n-1)/2次

27、算法具有零个或多个输入,至少具有一个或多个输出

28、e/E前面必须有数组,后跟整数。

29、printf用格式符 %5s ,若字符串长度比实际长度大,按实际长度输出,

             若字符串长度比实际长度小,就右对齐输出,左补空格。

30、a+7只能作为右值,即如x++只能作为右值一样。

31、引用是除指针外另一个可以产生多态效果的手段。意味着,一个基类的引用可以指向它的派生类实例。

32、优先级:~ 、<<、 &、^。(从左到右优先级依次降低)

33、前序遍历:根节点排最先,然后同级先左后右

   中序遍历:先左,再根节点,最后右

   后序遍历:先左,后右,最后根

猜你喜欢

转载自www.cnblogs.com/zonkidd/p/11729502.html