您现在的位置是:首页 >技术杂谈 >【C】C语言数据类型、常量变量的介绍网站首页技术杂谈

【C】C语言数据类型、常量变量的介绍

不是笨小孩i. 2024-10-18 00:01:02
简介【C】C语言数据类型、常量变量的介绍

数据类型

下图为C语言常见的数据类型:
数据类型
(浮点数就是我们常见的小数,字符类型要用‘’引起来,在C语言中字符串类型要用字符数组来表示,以后给大家慢慢介绍)
在C语言中没种数据类型所占的空间大小是不一样的,在这里给大家介绍一个库函数:sizeof,它可以计算每种数据类型所占的空间的大小,我们可以用代码来计算每种类型所占的空间的大小,如下:

#include<stdio.h>
int main()
{
	printf("%d
", sizeof(char));
	printf("%d
", sizeof(short));
	printf("%d
", sizeof(int));
	printf("%d
", sizeof(long));
	printf("%d
", sizeof(long long));
	printf("%d
", sizeof(float));
	printf("%d
", sizeof(double));
	return 0;
}

下图为运行结果:
在这里插入图片描述
从图中我们可以看出他们所占空间的大小各有差异,在这里需要解释一下的sizeof算出的是byte(字节)大小,具体的单位换算如下:

bit
1byte=8bit
1KB=1024byte
1MB=1024KB
1GB=1024MB

我们在写代码是根据自己需要来选择合适的类型。
这里大家可能会有一个疑问?就是为什么long 和 int 所占的空间大小一样呢?
这是因为在C语言中数据类型占用的空间有下面的一种关系:

long long >= long >= int > short >char

现在大家应该就可以理解为什么他们两个为什么所占的空间大小一样了。

常量和变量

在我们的生活中,有些值是不变的,那么也有一些值是会发生改变的,在C语言中我们把不变的量称为常量,把会发生改变的量称为变量。

变量

我们应该如何定义变量呢?
方法很简单,我们只需要数据类型加一个名称就可以创建一个变量,这里的名字不能随便起,必须是数字、下划线(_)、字母组成的,并且数字不能作为开头。
下面给大家举几个例子:
在这里插入图片描述
这里的ch、weight、salary就是变量。相信到这里大家应该已经能够自己创建变量了。我们的变量还分为全局变量和局部变量。下面给大家介绍一下,他们的区别。

全局变量和局部变量

给大家在代码中介绍一下全局变量和局部变量:

#include<stdio.h>
int global = 2023;//全局变量
int main()
{
	int local = 2022;//局部变量
	//这里可不可以在定义num 呢? 答案是OK的
	int global = 2024; // 局部变量
	printf("%d", global); // 这里的%d是以整数的型式打印
	return 0;
}

我们运行一下程序可以看到:
在这里插入图片描述
通过这个案例我们可以知道怎么什么是全局变量什么是局部变量,并且当全局变量和局部变量重名时局部变量优先使用。

变量的作用域和生命周期

作用域

作用域可以简单的理解为限定这个变量可用的一个代码范围。
局部变量的作用域是变量所在的局部范围,可以理解为在那个{}的范围内。
全局变量的作用域是整个工程。

生命周期

生命周期是从创建变量开始到销毁之间的一个时间段。
局部变量的生命周期是从创建开始,到出作用域结束。
全局变量的生命周期是整个工程的生命周期。

常量

在C语言中常量可分为字面常量、const 修饰的常变量、#define定义的标识符常量、还有一种枚举常量。接下来在代码中给大家介绍一下几种常量:

#include<stdio.h>
#define PI 3.14 
// 这里的PI就是#define修饰的标识符常量
enum Sex  //enum 是枚举关键字 可以创景一种枚举类型
{
	MALE,  
	FEMALE,
	SECRET
};
// 这里的MALE、FEMALE、SECRET就是枚举常量
int main()
{
	2023; //字面常量
	31;  //字面常量
	const int num = 310;  //const 是一个关键字 这里的num是一个const 修饰的常变量
	return 0;
}

这里给大家解释一下这里的num本质还是一个变量,但它拥有常量的属性,我们称之为常变量。这种写法在C++中num就是一个常量。

今天的分享就到这里结束了,感谢大家的支持和关注!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。