网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

C/C++面试常考关键字总结

栏目: C语言 / 发布于: / 人气:1.47W

C语言对于学习编程的小伙伴来说,是一种必须学习的基础。下面是小编为大家整理出来的有关于C/C++面试常考关键字总结,希望可以帮助到大家!

C/C++面试常考关键字总结

ic关键字的作用?

1)、static 申明的变量为静态全局变量,该变量存储在静态数据区,当整个程序结束时该变量才会被释放,只是生命周期延长,作用域不受影响。

2)、static申明的变量定义时如果不初始化默认初始化为0

3)、被static修饰的变量只能作用于本文件内,即使被extern修饰也不行

t,define的区别

1)、const修饰的变量为只读变量,定义一个const类型的变量时必须完成初始化

2)、define意为宏定义一个常量,给某个命名变量宏定义一个确定的数值,在预编译期间将会完成一个替换的动作,用宏定义的值替换给变量名。

3)、const也可以修饰函数的参数列表以及函数的返回值,参数返回值被const修饰代表参数和返回值均不能被改变。

4)、const修饰的变量可以通过强制类型转换转为非const

5)、const修饰的成员变量只能在构造函数的初始化列表进行初始化。并且不能修改

6)、const修饰成员函数,该成员函数不能修改任何成员变量的值

7)、const修饰对象:该对象中所有的成员都变成只读,而且该对象的所以成员函数都必须被const修饰。

,malloc/free的区别

(1)new/ malloc/free都是用来动态申请内存空间的 ,两组必须成对使用。

(2)new/为运算符,malloc/free为库函数需要头文件

(3)new/为对象申请释放内存会调用相应的构造函数和析构函数 malloc/free则不会

(4)new有数据类型的检查,是类型安全的,malloc无数据类型的检查返回值为void*

(5)new申请内存空间必须指明要存放的数据类型和要存放对象的数目,malloc只需要指明申请空间的`大小,可以通过显示地强制类型转换改变返回值的数据类型

(C++)

auto申明的变量必须初始化,程序会根据初始化的值的数据类型来自动确定该变量的数据类型。

5.指针和引用的区别

(1)指针和引用都是通过地址索引数据的。

(2)指针存放的是变量的地址,引用是变量的别名。

(3)指针也是一个变量需要占用4个字节(32位机器)的内存空间,引用不需要占用内存,它只是变量的一个别名。

5.面向对象和面向过程

面向对象:面向主要是以目标对象为研究体,这一思想的实现需要对各种不同属性的类进行封装,进而分析每种类型事物的属性和功能方法,

这种思想将计算机软件系统与外界系统一一对应,进行有针对性的研究。核心在于 (对象 + 消息)

面向过程:C语言是面向过程的编程语言,这种思想主要是为了去实现某种功能或目标去一步步研究算法流程,步步求精,

进而用一种最为简捷的过程来实现最终的目标,核心为 (算法+数据)

6. static修饰类的成员变量和成员函数

(1)static修饰的成员变量属于这个类,不属于某个对象。

(2)static修饰的成员变量需要在类外进行初始化。

(3)static修饰的成员函数只能访问static修饰的成员变量,不能访问普通成员变量。

(4)static修饰的成员函数没有this指针。

(5)基类static修饰的成员变量继承给子类也只存在一份,基类和派生类共享该成员。

(6)类内部可以定义静态的类对象成员,即 可以定义static修饰的类对象

// public:static base A; (正确) public: base A; (错误)

ble关键字

被mutable修饰的成员变量,是可变的,可以修改的,即使某个对象是const类型,该成员变量也可以被修改。在被const修饰的成员函数中该变量也可以被修改。

icit:

只能修饰构造函数,防止单参数的构造函数隐式类型转换,把一个常量转换成一个对象。

在没有加explicit之前,可以把一个常量赋给一个对象。

推荐构造函数前最好加explict

tile:

该关键字意思为易变的,因为有些时候某个变量容易被改变,所以我们需要读取当前该变量最新的数据,不需要编译器做优化处理。

主要用于多线程中。volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现读取数据不一致的现象。