初识C语言-数据+变量 + 常量

本文深入浅出地介绍了C语言中的基本数据类型如char, short, int, long等,讨论了数据类型的大小并通过printf和sizeof函数展示。此外,讲解了常量的不同种类,如字面常量、const修饰的常量和枚举常量,并区分了局部变量和全局变量,阐述了它们的作用域与生命周期。
摘要由CSDN通过智能技术生成

数据

数据类型

在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)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。
  3. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  4. 全局变量的生命周期是:整个程序的生命周期。

本次分享到这里也就结束啦,如果各位看官有收获的话还希望给个三连支持一波,有什么意见或者建议也请评论区指出,谢谢大家!

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值