文章目录
- 1. C++基础
-
- 1.1 C++特点
- 1.2 说说C语言和C++的区别
- 1.3 说说 C++中 struct 和 class 的区别
- 1.4 include头文件的顺序以及双引号""和尖括号<>的区别
- 1.5 说说C++结构体和C结构体的区别
- 1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?
- 1.7 C++从代码到可执行二进制文件的过程
- 1.8 说说 static关键字的作用
- 1.9 数组和指针的区别
- 1.10 说说什么是函数指针,如何定义函数指针,有什么使用场景
- 1.11 静态变量什么时候初始化?
- 1.12 nullptr调用成员函数可以吗?为什么?
- 1.13 说说什么是野指针,怎么产生的,如何避免
- 1.14 说说静态局部变量,全局变量,局部变量的特点,以及使用场景
- 1.15 说说内联函数和宏函数的区别
1. C++基础
1.1 C++特点
- C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。
- C++有三大特性(1)封装。(2)继承。(3)多态;
- C++语言编写出的程序结构清晰、易于扩充,程序可读性好。
- C++生成的代码质量高,效率高,
- C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等;
- C++可复用性高,C++引入了模板的概念,标准模板库STL(Standard Template Library)。
1.2 说说C语言和C++的区别
- C语言是C++的子集,C++可以很好兼容C语言。但是C++又有很多新特性,如引用、智能指针、auto变量等。
- C++是面对对象的编程语言;C语言是面对过程的编程语言。
- C语言有一些不安全的语言特性,如指针使用的潜在危险、强制转换的不确定性、内存泄露等。而C++对此增加了不少新特性来改善安全性,如const常量、引用、cast转换、智能指针、try—catch等等;
- C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL。
C++的STL库相对于C语言的函数库更灵活、更通用。
1.3 说说 C++中 struct 和 class 的区别
- struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;
- struct 中默认的访问控制权限是 public 的,而 class 中默认的访问控制权限是 private 的。
- 在继承关系中,struct 默认是公有继承,而 class 是私有继承;
- class 关键字可以用于定义模板参数,就像 typename,而 struct 不能用于定义模板参数,
1.4 include头文件的顺序以及双引号""和尖括号<>的区别
- 区别:
(1)尖括号<>的头文件是系统文件,双引号""的头文件是自定义文件。
(2)编译器预处理阶段查找头文件的路径不一样。
- 查找路径:
(1)使用尖括号<>的头文件的查找路径:编译器设置的头文件路径–>系统变量。