用#define定义宏常量,定义一个识标符,主要作用跟#include不同,define是替换,是临时的,预编译后就不存在了,当文件.c预编译成为.i文件时,预编译文件里面的define的值全部替换掉且定义的#define消失,定义的值不要加;加了后就也会替换到函数中去,也就是说宏常量的作用就是在预编译时替换
const用来定义常变量,如果在全局变量中定义加上const后只能读取全局变量的值,不能对它赋值改变它
全局定义const常变量时,如果不初始化,则默认值为0
C语言中const定义全局常变量可以编译后为0,在局部变量中用const定义常变量vsiual2019不可以编译出来,必须要初始化,总之好的编译习惯不管是全局还是局部要记得初始化值
C++中const不允许定义未初始化的全局或局部的常变量,比C语言更加严谨了
总之好的编译习惯不管是全局还是局部要记得初始化值
定义数组是[]里面必须是大于0的整型常量,不能使用变量,比如:int ar[10]
#define宏变量是一种替换,没有类型不开辟空间
const常变量有类型,要开辟空间,在C++里也等于是替换只不过宏变量是在预编译时替换,常变量是在编译时替换