数据
数据类型
在C语言,有各种数据,大致可以分为以下类:
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
数据类型的大小
在讲述数据类型的大小之前,我们先来简单介绍C语言的2个库函数:printf 和 sizeof
printf 可以用来实现打印
sizeof 可以用来计算某些东西的大小,单位是字节,这其中也包括数据的类型。
由此,我们可以看到每种数据类型的大小。
数据存储
当我们知道了数据都有哪些类型的时候,我们难免会去思考,数据在内存中到底是怎么存放的。对于这一部分内容,由于是初学C语言,笔者在这里不做过多讲解。有兴趣了解更多关于数据存储方面的知识,请参考:C语言-数据的存储(结构体、位段、联合体)
常量
常量的定义
常量,顾名思义就是不变的量。例如,一本书20元。其中的20就是一个常量。
说到这里,或许有人会提出反驳,不对呀,一本书可以35元啊,这不是变化了吗?
其实,这里说的是20是个常量,35也是个常量,书的价格才是变量。
常量的类型
说到常量,其实它也有几种类型
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
//const 修饰的常变量
int main()
{
int a = 10;//普通变量a
const int b = 10;//const修饰的常变量b
a = 20;//a可以被修改
b = 20;//b由于被const修饰,导致不允许对b作出修改 error
}
//#define 定义的标识符常量
#include<stdio.h>
#define MAX 1024
int main()
{
printf("%d\n", MAX);//这里的MAX会被替换成1024
}
//枚举常量
#include<stdio.h>
enum Aee
{
FIRST,
SECOND,
THIRD
};
int main()
{
printf("%d\n", FIRST);//FIRST直接被替换成0
printf("%d\n", SECOND);//SECOND直接被替换成1
printf("%d\n", THIRD);//THIRD直接被替换成2 , 以此类推....
}
当然,想了解更多关于枚举常量的存储方式请参考:C语言-数据的存储(结构体、位段、联合体)
变量
变量的定义
变量,同理可知,会变的量,就像上述说的一本书的价格就是变量同样的,在C语言里面也同样也有变量的说法。
//初始化定义
int age = 150; // int 定义的整型变量age,且初始化为150
float weight = 45.5f;// float 定义的浮点型变量weight,且初始化为45.5f
char ch = 'w';// char 定义的字符型变量 ch,且初始化为‘w’
//不初始化定义
int age;
float weight;
char ch;
变量的分类
- 局部变量
- 全局变量
#include<stdio.h>
int b = 10; //定义在主函数外部--全局变量
int main()
{
int a = 10;//定义在主函数内部--局部变量
}
#include<stdio.h>
int a = 10;
int main()
{
int a = 20;
printf("%d\n", a);//打印结果是20,当局部变量和全局变量命名相同时,局部变量优先
}
变量的作用域与生命周期
在说明变量的作用域和生命周期前,先来简单介绍一下作用域和生命宁周期
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
本次分享到这里也就结束啦,如果各位看官有收获的话还希望给个三连支持一波,有什么意见或者建议也请评论区指出,谢谢大家!