1、常量
字面常量:具体数字0、1 、2等
const修饰的常变量:const int num
修饰全局或局部变量都可以,但是不可用在int arr[num]={0};处,因为常变量是变量,不是常量,此处只能用常量
const int* pa = #---当在*左边时,修饰的是pa,此时不能通过pa改变*pa的值(*pa= 20;)不然不报错
int* const pa = #---当在*右边时,修饰的是pa,此时不能修改地址,若(pa = &num1;)则会直接报错
const int* const pa = #---此时*pa和pa都不可以发生改变(第25个视频3小时处有个很有意思的故事)
#define顶一个常量标识符:#define MAX 100
只能用作全局变量,且此处可以用作初始化数组int arr[MAX] = {0};
宏定义:#define MAX(x,y) (x>y?x:y)
枚举常量:enum Sex{Male,Female,Secret};(换行写的),使用过程enum Sex LiMing = Male;
2、变量
全局变量:定义在大括号之外的
全局变量不初始化默认值是0
生命周期:整个程序的声明周期
static修饰全局变量,改变了变量的作用域,使静态的全局变量在源文件内部可使用,修饰函数相同,改变了函数的链接属性,由外部链接属性-->内部链接属性(static int a = 1;)(static int Add(int x,int y);)
局部变量:定义在大括号之内的,且两者可以重名,但容易有bug,其中局部变量优先
局部变量不初始化默认值是随机值
生命周期:进入作用于生命周期开始,出作用域生命周期结束
static修饰局部变量可以延长局部变量的生命周期,使其在程序结束时生命周期结束,但作用域不变
标签:const,常量,int,局部变量,pa,修饰,变量 From: https://blog.51cto.com/u_13606048/6148308