初始c语言之常量和变量

一.常量与变量

1.变量

变量的介绍

在生活中有些东西的值是可变的有些值是一直保持不变的(例如某件东西的价格,人的身高是可变的),我们把这些可以改变的量叫做变量
每一个变量必须有一个类型,类型用来存放数据的种类。(如 int,char,double,float,long long等等)。在给每一个变量选择合适的类型是很重要的。int型可以存储整数,但不是所有的整数都可以存储,它是有范围限制的,int类型最大只能存储2147483647的数字,一旦比最大值大就超出了int的范围。int类型只能存储4个字节的数字,1个字节等于8个比特位,那么int类型能存储32个比特位的数字。(数据的存储在这里如果不明白不影响对变量的理解,后期会专门写各种类型的存储方式)。
比起各种类型的存储显然变量的命名尤为重要,变量的命名必须保持这几个原则:1.只能由数字,字母,下划线组成。2.不能以数字开头。3.长度不能超过63个字符。4.变量名区分大小写。5.变量名不能使用关键字

变量的分类

变量分为局部变量和全局变量

变量的作用域与生命周期

#include<stdio.h>
int main()
{
    {
       int a = 10;
    }
    return 0;
  }

这里的变量a显然是一个局部变量出了花括号自动销毁。局部变量只是工作在某一范围里面,进入这个范围就创建这个变量,出了这个范围就自动销毁。先对比一下下面代码,第二个代码块a在main函数里面的第一个花括号里面开辟出4个字节的内存,创建出变量a,出了花括号,创建的内存自动销毁由操作系统回收,它的作用域只是在花括号中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一例代码说明a在main函数中是一个全局变量,第二个代码说明a出了花括号后创建的变量就自动销毁了,说明a是一个局部的变量。
上述在这里插入图片描述
最后一个代码说明全局变量a可以在整个工程中调用。全局变量还可以跨文件调用。
在这里插入图片描述
在这里插入图片描述

上述2个代码是在2个源文件中创建的,int a=3333是在test1.c文件中创建的,main函数是test2.c中创建的,代码可以运行成功打印出a的值说明全局变量可以跨文件调用。也说明了全局变量的生命周期是整个工程。
总结:局部变量的生命周期是进入作用域生命周期开始,出作用域生命周期结束。全局变量的生命周期是整个工程。

常量

常量的介绍

生活中不变的值是常量例如性别,血型,圆周率等等。

常量的分类

1.字面常量

3 3.14 100 ‘a’等等不变的值叫字面常量

2.const修饰的常变量

一般来说变量是可以被修改的例如:
在这里插入图片描述
变量a的值原来是123,后面修改了a的值为19,从侧面也反映出了变量可修改,值不是不变的。那么我用const修饰变量会发生什么样的结果呢?
在这里插入图片描述
用const修饰变量后其值不能改变是不是说明变量a成为了一个常量呢,只有常量的值不能修改,接下来让我们继续看。
在这里插入图片描述
我们第8行定义了一个数组(不懂数组没关系,你只需要知道[]里面必须放一个常量不能是变量,例如int arr[],[]里面只能放一个不变的量如1,2,3),加了const后数组定义报错说明[]是一个变量,结合上面2个例子可以得出const修饰的变量只是让变量有了常量的属性(如第一个例子变量的值不能改变),但本质还是一个变量。

3.#define定义的标识符常量

在这里插入图片描述

4.枚举常量

文章中的枚举常量只是让你认识它,后期会专门写枚举常量的文章。
生活中有我们可以自定义的东西,如性别可以分为男女,颜色可以分为黄色。蓝色。白色等等。
在这里插入图片描述
jacket,pants,shoes是枚举常量clothes的不同取值,同时也是常量(把枚举常量打印出来分别是整数0,1,2等等)不变的量,所以叫枚举常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值