文章目录
- 1.C++基础
- 1.1 说说new和malloc的区别
- 1.2 说说const和define的区别。
- 1.3 说说C++中函数指针和指针函数的区别
- 1.4 说说const int *a, int const *a, const int a, int *const a, const int *consta分别是什么,有什么特点。
- 1.5 说说使用指针需要注意什么?
- 1.6 说说内联函数和函数的区别,内联函数的作用。
- 1.7 简述C++有几种传值方式,之间的区别是什么?
- 1.8 简述const(星号)和(星号)const的区别
1.C++基础
1.1 说说new和malloc的区别
- new是操作符,而malloc是函数。
- new在调用的时候先分配内存,在调用构造函数,释放的时候调用析构函数;而malloc没有构造函数和析构函数。
- malloc需要给定申请内存的大小,返回的指针需要强转;new会调用构造函数,不用指定内存的大小,返回指针不用强转。
- new可以被重载;malloc不行
- new分配内存更直接和安全。
- new发生错误抛出异常,malloc返回null
1.2 说说const和define的区别。
const用于定义常量;而define用于定义宏,而宏也可以用于定义常量。都用于常量定义时,它们的区别有:
- const生效于编译的阶段;define生效于预处理阶段。
- const定义的常量,在C语言中是存储在内存中、需要额外的内存空间的;define定义的常量,运行
时是直接的操作数,并不会存放在内存中。 - const定义的常量是带类型的;define定义的常量不带类型。因此define定义的常量不利于类型检查。
1.3 说说C++中函数指针和指针函数的区别
(1)指针函数本质是一个函数,