C/C++面试小知识点

时间:2023-03-09 17:03:11
C/C++面试小知识点

1.static有什么用途。

解答:

  1. 在函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
  2. 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
  3. 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。也就是说,这个函数被限制在声明它的模块的本地范围内使用。

2.引用与指针有什么区别?

解答:

  1. 引用必须被初始化,指针不必。
  2. 引用初始化后不能被改变,指针可以改变所指的对象。
  3. 不存在指向空值的引用,但是存在指向空值的指针。

3.写出float x与“零值”比较的if语句。

if(x > 0.000001 && x < -0.000001)

4.C++中类与结构的唯一区别是:类(class)定义中默认情况下的成员是private的,而结构(struct)定义中默认情况下的成员是public的。

struct和class的区别是struct定义的是值类型,值类型的实例在上分配内存;而class定义的是引用类型,引用类型的实例在上分配内存。

5. ::叫作用域区分符,指明一个函数属于哪个类或一个数据属于哪个类。::可以不跟类名,表示全局数据或全局函数(即非成员函数)