2人赞同了该回答
static关键字
static关键字具有隐藏式、记忆、延长生命周期的作用。
在C语言中,static既可以修饰变量,也可以修饰函数。
在C++中,static既可以修饰成员变量,也可以修饰成员函数。
静态变量与全局变量的区别
全局变量与局部变量的区别
const关键字
const关键字在一定程度上可以提高程序的安全性和可靠性。
C语言中,const可以修饰普通变量,指针,函数形参,函数返回值。
C++中,const可以修饰成员变量、成员函数、类对象、引用、
const与#define的区别:
const修饰的常量可以排除程序间的不安全性因素,保证程序中的常量不被修改,并且会进行类型的安全检查,提高了程序的健壮性,最好用const来定义常量,而不是define。
宏定义的优缺点:
优点:
缺点:
枚举与宏定义的区别
typedef与define的区别
#define int* INTPTR1
typedef INTPTR2 int*;
INTPTR1 a,b;//int *a, b;
INTPTR2 c,d;//int *c, *d;
宏函数与函数有什么区别?
宏函数与内联函数的区别
内联函数与普通函数的区别
volatile关键字的含义
volatile修饰的变量,每次使用它时都会去内存读取,而不是寄存器中的备份。编译器不会对该类变量进行优化。
volatile一般修饰多线程中多个任务共享的变量、中断子程序中会访问到的非自动变量和并行设备硬件寄存器。
一个变量用const修饰的同时还可以用volatile修饰,原因是const表明这个对象体现常量语义,程序不应该试图修改它,但同时可能会被当前对象所在程序上下文意外的情况修改,此时可加上volatile。
explicit关键字的作用
explicit用于修饰含有一个参数的构造函数,表明该构造函数是显式的,禁止编译器进行非预期的类型转换。effective C++中建议使用该关键字修饰构造函数。
struct和union的区别
C语言中的struct与C++中的struct的区别
C++中struct与class的区别
new/delete和malloc/free的区别
有new/malloc,就要有delete/free,否则会造成内存泄漏。free/delete结束后,并不是将内存直接返回给操作系统,而是告诉操作系统,这段内存可用作其他用途,但是没有重新对这块内存进行写操作,以前的数据没有变化,造成野指针,需要将其置为NULL。
sizeof和strlen的区别
sizeof是关键字,strlen是函数
sizeof的结果是创建的最大对象的字节大小,strlen返回的是字符串的长度,不包括‘0’
sizeof可以用类型做参数,strlen只能用char*做参数,并且必须以’0’结尾。
用数组名做参数时,sizeof不退化,strlen退化为指针。
sizeof在编译的时候计算,strlen在运行的时候计算。
sizeof返回值类型以及静态分配的对象、结构或数组所占的大小、返回值与对象、结构、数组所存储的内容没有关系;strlen只关心存储的数据内容,不关心空间的大小和类型。
struct的sizeof是所有成员对齐后的长度相加,union的sizeof是最大的成员长度。
exit与return的区别
ASEERT()和assert()
ASEERT()称为断言,是调试程序时用的宏,检查非法错误,只存在Debug版本中,Release版本中则被忽略。
ASSERT()是宏,而assert()是函数,用法和ASEERT()类似,但是可以出现在Realease版本中,需要注意的是:
————————————————
版权声明:本文为CSDN博主「zm1_1zm」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zm1_1zm/article/details/76919136
发布于2023-06-12