https://www.cnblogs.com/yjd_hycf_space/p/7495640.html
https://www.cnblogs.com/inception6-lxc/p/8686156.html
C和C++的区别
- C面向过程C++面向对象(但C也可以写面向对象的程序,只不过没有C++效率高)
- C适用嵌入式C++适合更上层的
C++中struct和class
- struc内部成员默认访问方式为public,class默认为private,这是struct和class最基本的差别,也是最本质的差别,其他基本一样
- 默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理 (到底默认是public继承还是private继承,取决于子类而不是基类)
C语言和C++的struct区别
C语言中struct只能有内部变量,没有成员函数,没有访问权限的设定,不能继承
C++中嗯,上面的都可以....
静态变量(函数)和普通变量(函数)的区别
- 静态全局变量依然在静态存储区域,它限制了变量的作用域,如一个源程序中由多个源文件组成,普通全局变量可以在任何文件中使用,而使用static修饰的变量则只能在本文件中起作用
- 静态局部变量在函数中只初始化一次,之后再次调用次函数,不会在进行初始化
- 静态函数在内存只维持一份信息,而普通函数每次调用都会有一个拷贝
野指针和悬空指针
野指针
是未初始化的指针。指针超过了变量了的作用范围,比如b[10],指针b+11
悬空指针
指针指向的内存被释放了,但是没有让指针指向NULL
无论野指针还是悬空指针,都是指向无效内存区域(这里的无效指的是"不安全不可控"的指针
const知道吗?解释一下其作用
- const修饰类的成员变量,表示常量不可能被修改
- const修饰类的成员函数,表示该函数不会修改类中的数据成员,只能调用const的成员函数
关键字static的作用
- 函数体内: static 修饰的局部变量作用范围为该函数体,不同于auto变量,其内存只被分配一次,因此其值在下次调用的