写在前面:
今天我们要学习的是C语言中的变量和常量,下面我们一起来对这方面的知识结合代码进行探究.
C语言中的变量分为局部变量和全局变量.
C语言中的常量可以分为以下几种:
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
在我们的生活当中有些值是亘古不变的,比如:圆周率,身份证号码,血型等.而有的值是经常发生变化的,比如我们的体重,蹭蹭涨的薪资等等.接下来让我们学习学习变量与常量的关系以及区别.
变量:
定义变量的方法:
int age = 22;
float weight = 62.1f;
char ch = 'g';
变量的分类:局部变量和全局变量
#include <stdio.h>
int a = 10; //全局变量
int main() {
int b = 20; //局部变量
return 0;
}
注意:当全局变量和局部变量重名时,优先使用局部变量.即对全局变量进行了隐藏.
这里很有必要讲一讲变量的作用域和生命周期:
作用域:变量的可用性范围,通常来说,就是一段程序代码中所用到的名字并不总是可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域.
局部变量的作用域是指变量所在的局部范围,而全局变量的作用域是整个工程.
生命周期:变量的生命周期指的是变量的创建到变量销毁之间的一个时间段.
局部变量的生命周期是进入作用域生命周期开始,出作用域生命周期结束,而全局变量的生命周期是整个程序.
很多时候可能会忘记给变量赋值造成不可控制的错误,但是有的时候忽略了但是结果却是正确的,这是什么原因呢?
其实最主要的原因就是:全局变量未初始化默认为0,局部变量未初始化为随机值或者直接报错(VS编译器).
常量:
一.字面常量
#include <stdio.h>
int main() {
//字面常量
3.14;
10;
'a'; //字符常量
"dajijoa"; //字符串常量
return 0;
}
字面常量写出来就是已经固定了,不能再修改了.
二.const修饰的常变量
上面图中,num为变量,顾名思义也就是可以变的量,可以对它重新赋值.
而变量num使用const关键字修饰后变成了常变量,因此在对变量num重新赋值时就出现了错误.
常变量的意思是具有只读属性不能修改,但是其本质上依然是变量.由此可知:
定义数组时同样也不能使用常变量,而是需要常量才可以.
三.#define定义的标识符常量
使用#define宏定义的标识符常量同样也不可以修改,否则也会报错.
四.枚举常量
指的是可以一一列举的常量,比如性别,可以列举为男,女和保密这三种等等
同样枚举常量都是具有值的,并且默认是从0开始并且依次向后加1进行操作.
如果刚开始进行了赋初值则依次向下加一
如果对枚举常量的中间某一位进行了赋值,则后面的依次加1进行.而之前的所有仍然是从0开始.
以上的几种情况都是笔试中有可能会遇到的,并且在平时的使用中也是一个容易忽略的小点,并且也是很容易出错的一个小点,希望大家可以多多注意.
路漫漫其修远兮,吾将上下而求索. -------屈原 <<离骚>>