1、C++招聘笔试--C++中的C

文章目录

  • 面试1 C++和C的区别?
  • 面试2 const在C和C++的区别
  • 面试3 volatile关键字的含义和作用以及应用场景

面试1 C++和C的区别?

C只是C++的一个子集,C++在C的基础上增加了类和模板类型,一方面强化了C的过程化处理,引入了重载、异常处理等,另一方面更是扩展了面向对象设计的内容,如类、友元、继承、虚函数和模板等。
从变成的角度上,C是一种结构化编程语言,而C++是面向对象的编程语言,C++程序设计首要考虑的是如何构造一个对象模型。之所以说C++比C更加先进,是因为“设计这个概念已经被融入到了C++之中”。

面试2 const在C和C++的区别

const在C和C++中略有不同,在C中,C编译器不把const常量看成一个编译期间的常量,为其分配内存空间。

 const int n=10;
 int a[n];  

//编译时候不能确定n的值,将其看成0;C编译:“connot allocate an arry of constant size 0”
//在C++之中上述程序没有错误,说明C++编译器在编译时候知道const常量的值。

面试3 volatile关键字的含义和作用以及应用场景

volatile关键字的含义是“易变的”,它高速编译器volatile变量是随时可能发生变化的,并且高速编译器与volatile有关的运算不要进行编译优化。这样每一次都会对其取值,不会被优化。
用volatile关键字修饰的变量确保编译器不对其代码进行优化,且要求每次直接从内存中读值。
一个定义为volatile的变量是说这个变量可能会有意想不到的改变,在用到这个变量时候必须每次都小心重新地从内存中读取这个变量的值,而不是使用保存在cache或者寄存器里的备份,使用volatile变量的几个实例:
1、并行设备的硬件寄存器(如状态寄存器)
2、一个中断服务子程序中会访问到的非自动变量。
3、多线程应用中被几个任务共享的变量。

你可能感兴趣的:(C++面试笔试)