C/C++
c++开发面试常见问题
ssokyfar
研究方向是三维图像处理(重建、点云分割)
展开
-
C++数据类型/大小
#include<climits>int main() { using namespace std; int n_int=INT_MAX; short n_short=SHRT_MAX; long n_long=LONG_MAX; long long n_llong=LLONG_MAX; // float is 4 bytes. ...原创 2019-10-31 10:08:54 · 158 阅读 · 0 评论 -
C++不能重载的符号
5个符号::: . .* ?: sizeof以及四个类型转换运算符:const_caststatic_castdynamic_castreinterpret_cast原创 2019-10-31 10:50:00 · 696 阅读 · 0 评论 -
C与C++的
设计思想上:C++是面向对象的语言; C是面向过程的结构化编程语言语法上:C++ 在 C的基础上增加了封装、继承、多态三种特性 C++相比C,增加了许多类型安全的功能,比如强制类型转换 C++支持泛型编程,比如模板类、函数模板等C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数;形成多态必须具备三个条件:1、必须存在继承关系;2、继承关系必须有...原创 2019-10-31 11:00:41 · 164 阅读 · 0 评论 -
sizeof 和 strlen 区别
sizeof 和 strlen 的对比 sizeof strlen 概念 运算符 可以以类型、函数、做参数 函数 只能以char*(字符串)做参数,且要想得到的结果正确必须包含 ‘\0’ 结果类型 size_t (它在头文件用typedfe定义为unsigned int类型) ...原创 2019-10-31 11:20:39 · 111 阅读 · 0 评论 -
C++中的static关键字
特点1 特点2 修饰局部变量 改变了局部变量的存储区(栈->静态存储区)以及生命周期(离开作用于之后,并未被销毁,仍然驻留在内存,直到程序销毁,但是我们不能再对它进行访问),但未改变其作用域。 在全局数据区分配内存; 在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; 一般在声明处...原创 2019-10-31 11:44:07 · 103 阅读 · 0 评论 -
C++中的const关键字
作用限定变量为不可修改 限定成员函数不可以修改任何数据成员(“函数体内不能对成员数据做任何改动”,如果你声明这个类的一个const实例,那么它就只能调用有const修饰的函数) 不可以同时用const和static修饰成员函数 const 变量 const int a; 不能修改值,必须初始化 const 类对象 ...原创 2019-10-31 14:40:45 · 129 阅读 · 0 评论 -
const和define的区别
#define const 起作用的阶段 在编译的预处理阶段起作用 编译、运行的时候起作用 起作用的方式 是字符替换,没有类型检查 有类型检查 存储方式 只是进行展开,有多少...原创 2019-10-31 14:46:20 · 107 阅读 · 0 评论 -
const char*, char * const, char [], const char[]等对比
const char * arr = "123"; // 可以修改指向: arr = "321"; // 不可以修改值: arr[0]='2' //------error 字符串123保存在常量区,const本来是修饰arr指向的值不能通过arr去修改,但是字符串“123”在常量区,本来就不能改变,所以加不加const效果都一样 const cha...原创 2019-10-31 15:11:42 · 951 阅读 · 0 评论 -
typedef和const的对比
typedef用来定义新的类型,类似的还有#define 和 using(c++11),应该尽可能用using,如:using AAA = int64_t;和宏定义的对比: #define typedef 作用阶段 在预处理阶段进行简单替换,不做类型检查 在编译阶段处理,...原创 2019-10-31 15:13:46 · 277 阅读 · 0 评论