关于常量,我们在98的C中会采用类似
#define pi 3.14; 的方式进行定义,
在C++中提供了const float PI = 3.14;
这样的方式,以下为性质总结:
//const常量 //(1)用于修饰变量,将变量变成常量(常量一旦定义,就不可修改) //(2)编译器在程序的编译时期做的检查 //使用常量来代替宏定义,定义时进行赋值 //可以是全局也可以是局部的
参考B站视频进行学习:const常量
以下为个人笔记:
#include//bool类型 //(1)C++中的新类型(bool:0为假,非0为真) //(2)占用的字节数(bool:1 BOOL:4) //const常量 //(1)用于修饰变量,将变量变成常量(常量一旦定义,就不可修改) //(2)编译器在程序的编译时期做的检查 //C命令中写法 //宏的编译本质上是文本级的替换,在编译之前用pi对3.14替换,但未指定数据类型 #define pi 3.14; //使用常量来代替宏定义,定义时进行赋值 //可以是全局也可以是局部的 const float PI = 3.14; //常量无法修改是在什么时候检查的 //1.程序的编译时期--无法修改 //2.程序运行时期--是可以通过内存修改的 //main函数其实有参数的 //int nArgc为命令函参数个数,char* pArgv[]为命令行参数指针 int main(int nArgc,char* pArgv[]) { float r = 0.5; //利用printf显示,即使在运行时改变内存值,也会打印出5 //这是因为在编译时编译器看到nConst是个const值,因此printf("nConst=%drn",nConst)中nConst提前等于5 //换成命令函参数个数nArgc后,编译器不能提前知道值,因此在运行时内存中的修改便会生效 const int nConst = nArgc; printf("nConst=%drn",nConst); //float* p = Π//报错:无法从“const float *”转换为“float *” float* p =(float*)Π //利用(float*)进行强转即可读取其地址;常量不可改,但是编译器又给其分配了空间,通过指针来改变 //PI = 1.11f; //报错:不能给常量赋值 float n = PI *r*r; }



