文章目录
前言
通过上一层对C语言进行简单的概述,描述了C语言的基本语句和各种关键字。相信小伙伴们对C语言有了大致的了解。那么接下来说一说C语言的各种数据类型,以及C语言中变量的定义等知识点。👇👇👇
1. 数据类型介绍
在C语言当中啊,为我们提供了很多种数据类型,可以用来表示生活中的各种数据。下面我们来盘点一下C语言中数据类型的分类吧!👀👀👀
- 对于bool类型,在C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。在之后的 C99 中才引⼊了布尔类型,专⻔表⽰真假的。
2. 各种数据类型长度
我们知晓了C语言的数据类型,那么接下来我们来看一看C语言中各种数据类型的长度吧,因为每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不同,存储的数据范围就有所差异。在这不得不介绍一个操作符sizeof 操作符,专门用来求数据类型长度的。
2.1 sizeof操作符介绍
sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof的操作符数的类型⻓度的,单位是字节。sizeof 操作符的操作数可以是各种数据类型,也可是变量或者表达式。
sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
sizeof 的计算结果是 size_t 类型的。
#include<stdio.h>
int main()
{
int a = 20;
printf("%zd\n", sizeof(a));
printf("%zd\n", sizeof a);//a是变量是可以省略括号的
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof (5+2.3));//双精度浮点型
return 0;
}
- 结果如下:👇👇👇
2.2 数据类型长度
此处直接用代码来展示数据类型的长度:👉👉👉
#include<stdio.h>
int main()
{
printf("%zd\n", sizeof(char));
printf("%zd\n", sizeof(short));
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(long));
printf("%zd\n", sizeof(long long));
printf("%zd\n", sizeof(float));
printf("%zd\n", sizeof(double));
printf("%zd\n", sizeof(long double));
return 0;
}
- 结果如下:👇👇👇
2.3 数据类型取值范围
用图片展示取值范围:📺📺📺
2.4 sizeof 中的表达式不计算
【只关注类型,并且在用sizeof跟表达式的时候,只关注最终表达式的类型,表达式不进行计算】
#include<stdio.h>
int main()
{
int a = 20;
int b = 30;
printf("%zd\n", sizeof(a = b + 5));
printf("%d\n", a);
return 0;
}
结果如下:很明显a的值没有发生变化,说明sizeof中的表达式不计算。
3. unsigned与signed
signed和unsigned表示有符号(+正、-负)和无符号(只存储0和正整数),修饰字符型和整型。signed int等同于 int。一般定义signed的时候,可以省略不写。
数据变量声明为unsigned类型的好处:同样长度的内存能够表示的最大整数值,增大了一倍。比如:16位的signed short int 的取值范围为:-32768~32767,最大是32767;而unsigned short int 的取值范围是:0~65535,最大是65535。
4. C语言变量的介绍
了解清楚了类型,我们使⽤类型做什么呢?类型是⽤来创建变量的。什么是变量呢?C语⾔中把经常变化的值称为变量,不变的值称为常量。接下来看看变量的创建。
4.1 变量的定义
- 创建语法:data_type[数据类型] name[变量名];
4.2 变量的分类
变量可以分为全局变量【在大括号之外定义的】和局部变量【大括号内部】。
【注意:当全局变量和局部变量的名字相同时,遵循局部变量优先】
4.3 变量的存储位置
首先,计算机内存三大区:栈区、堆区、静态区。
- 然而创建变量的本质是在内存中申请一块空间。
局部变量在栈区、全局变量在静态区、堆区是用来动态内存管理的。
4.4 变量的初始化
当变量为局部变量的时候,系统不会自动初始****化,需要自己手动初始化。而全局变量系统会自动初始化,以下是全局变量各种数据类型对应的初始化的值
此篇博客就描述这些类容了👌👌👌👌👌多多支持。