C语⾔中的变量与常量
在我们的⽣活当中有些值是亘古不变的,⽐如:圆周率,⾝份证号码,⾎型等.⽽有的值是经常发⽣变化的,⽐如我们的体重,蹭蹭涨的薪资等等.接下来让我们学习学习变量与常量的关系以及区别.
const的作用变量:
定义变量的⽅法:
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开始.
以上的⼏种情况都是笔试中有可能会遇到的,并且在平时的使⽤中也是⼀个容易忽略的⼩点,并且也是很容易出错的⼀个⼩点,希望⼤家可以多多注意.
路漫漫其修远兮,吾将上下⽽求索. -------屈原 <<;离骚>>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论