作用域
作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
1.局部变量的作用域是变量所在的局部范围。(一般是这个变量所在的大括号内)。
2.全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。
常量
C语言中常量和变量的定义形式有所差异。
C语言中的常量分为以下几种:
1.字面常量,比如:10(整型常量),3.14(浮点型常量),'w'(字符常量),"abc"(字符串常量)。
2.const修饰的常变量,比如:const int a = 10;a不可被修改。
在C语言中,const修饰的a,本质是变量,但是不能直接修改,有常量的属性。
const int n = 10;
int arr[n] = {0};
不能编译通过,下面提示错误:应输入常量表达式,说明这个const修饰的n本质上还是变量。
(可以理解为:变量是个空间,常量是实际值,变量用来容纳常量,const只是锁定了值,但是并不是把空间变成数值。)
3.#define定义的标识符常量
#include <stdio.h>
#define MAX 100
#define STR "abcdef"
int main(){
int a = MAX;
printf("%d\n",MAX);
printf("%d\n",a);
printf("%s\n",STR);
return 0;
}
结果如图:
#define定义的标识符常量的作用跟全局常变量差不多,全局变量plus版。#define定义的只是一个符号,并不是像变量一样的值,在程序中遇到这个符号就自动替换为对应的值。
4.枚举常量
//三原色
enum Color{
RED,
GREEN,
BLUE
};
//性别
enum Sex{
MALE,
FEMALE,
SECRET
};