1.回顾变量
1.1变量的作用域和生命周期
1.1.1作用域:限定该变量可以使用的范围
1.局部变量的作用域是变量所在的局部范围。
2.全局变量的作用域是整个工程。
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" int main() { { int a = 10; printf("%d\n", a);//a在{}内部创建,可以在{}内部使用 } return 0; }
运行结果是
如果将代码改成下面这样,结果会怎么样呢
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" int main() { { int a = 10; } printf("%d\n", a);//a在{}内部创建,不可以在{}外部使用 return 0; }
该段代码运行结果是
原因是printf()函数使用时,超出了a的作用域,a的作用域在定义int a 的大括号内部
这是局部变量作用域的展示
接下来是全局变量的作用域
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" int a = 100; void test() { printf("test()--->%d\n", a);//定义test()函数,打印出“”内的内容 } int main() { printf("%d\n", a);//定义a为全局变量,可以在整个工程中都使用 test(); return 0; }
该段代码的效果如下
可见,全局变量的作用域是整个工程
1.1.2 生命周期
变量的生命周期是指:变量的创建到变量的销毁之间的一个时间段
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" int a = 100; int main() { printf("%d\n", a); printf("%d\n", a); return 0; }
该段代码的效果如下
上述代码就是全局变量a的生命周期,是整个程序的生命周期
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" int main() { int a = 10; printf("%d\n", a); a = 20; printf("%d\n", a); return 0; }
上述代码是局部变量的生命周期,第一个a在第四行被定义,在第五行被执行并销毁,这就是他的生命周期;同理,第二个a在第六行被定义,在第七行被执行并销毁,这是第二个a的生命周期。
下面是该段代码的执行效果
2.常量
常量,顾名思义就是不变的量,跟变量刚好相反
C语言中常量有以下几种
- 字面常量
- const修饰的常变量
- #define定义的标识符变量
- 枚举常量
字面常量:直接写出的值就是字面常量;例如:100、20.0、3.14、'a' 等等
const修饰的常变量:这里的常,表示的是不变的意思。const是常属性,可以用来修饰变量
通过这段代码可以看出,经过const修饰的变量,就不能再被修改了
这里,我们称b就是const修饰的常变量,具有了常属性;b本质上还是一个变量,只不过它被const在语法层面上加了一层限制,具有了常属性
cons是在语法层面加上的一层限制,就是告诉我们,该变量的值不能再被修改了
#define定义的标识符常量:
运行结果如下
通过代码,我们能很明显地感受到#define定义的是一个常量
枚举常量:枚举的意思就是一一列举
生活中有一部分数据是可以一一列举出来的:例如三原色、性别、星期、月份等等。
C语言中就给出一个枚举类型,可以把这些数据一一列举出来,比如下面这段代码:
enum Color//自定义的一个枚举类型 { RED, GREEN, BLUE//枚举常量 //即该枚举类型的取值只有{}内的三种 };
这就是一个枚举类型,而枚举常量的取值是从0开始依次往下排,通过下面这段代码的执行效果就可以感受到
#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" enum Color//自定义的一个枚举类型 { RED, GREEN, BLUE//枚举常量 //即该枚举类型的取值只有{}内的三种 }; int main() { enum Color a = RED; enum Color b = GREEN; enum Color c = BLUE; printf("%d\n", a); printf("%d\n", b); printf("%d\n", c); return 0; }
所以,枚举常量其实就是枚举类型可能的取值,{ }内一一列举出来的
3.结束
那么今天的学习就到这里咯,今天我们复习了之前的变量知识,又学到了新的常量知识
小杜跟各位小伙伴在一起成长,祝我们都能成为大牛!
//小杜的成长之路