目录
1、数据类型介绍
在C语言中,任何数据对用户呈现的形式有两种:常量和变量。而无论是常量还是变量,都必须属于各种不同的数据类型。
C语言规定的数据类型如下:
1.1 字符型
char //character
[signed] char //有符号的
unsigned char //无符号
1.2 整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//长整型
long [int]
[signed] long [int]
unsigned long [int]
//更长整的整型
//C99中引入
llong long [int]
[signed] long long [int]
unsigned long long [int]
1.3 浮点型
float
double
long double
1.4 布尔类型
_Bool
1.5 各种数据类型的长度
每一种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不变的变量,变量长度的不同,存储的数据成为就是有所差异。
1.5.1 sizeof操作符
sizeof是一个关键字,也是操作符,专门是用来计算sizeof的操作数的类型长度,单位是字节。
sizeof操作符的操作数可以是类型,也可以是变量或者表达式
sizeof(类型)
sizeof 表达式
sizeof的计算结果是size_t类型的
1.5.2 数据类型长度
#include <stdio.h>
int main()
{
printf("%zd\n",sizeof(char)); //1
printf("%zd\n",sizeof(_Bool)); //1
printf("%zd\n",sizeof(short)); //2
printf("%zd\n",sizeof(int)); //4
printf("%zd\n",sizeof(long)); //4
printf("%zd\n",sizeof(long long)); //8
printf("%zd\n",sizeof(float)); //4
printf("%zd\n",sizeof(double)); //8
printf("%zd\n",sizeof(long double)); //8
}
1.5.3 sizeof中表达式不计算
sizeof在代码进行编译的时候,就根据表达式的类型确定了,而表达式的执行却要在程序运行期间才能执行,在编译期间以及将sizeof处理掉了,所以在运行期间就不会执行表达式。
2、signed和unsigned
- C语言使用signed和unsigned关键字修饰字符型和整型类型的
- signed关键字,表示一个类型带有正负号,包括负值
- unsigned关键字,表示该类型不带有正负号,只能表示零和正整数
- 对于int类型,默认是带有正负号的,也就是说int等同于signed int
2.1、unsigned的好处
整型变量声明为unsigned的时候,同样长度的内存能够表示的最大值整数值,增大了一倍。
比如,16位singned short int的取值范围是:-32768 ~ 32767,最大是32767;而unsigned short int的取值范围是:0 ~ 65535,最大值增大到了65535。
3、数据类型的取值范围
4、变量
4.1 变量的创建
C语言中中经常把变化的值称为变量,不变的值称为常量
变量创建的语法格式:
date_type name;
| |
| |
数据类型 变量名
例如:
int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量
变量在创建的时候就给一个初始值,就叫初始化
int age = 18;
char ch = 'w';
double weight = 48.5;
4.2 变量的分类
全局变量:在大括号外定义的变量就是全局变量
局部变量:在大括号内部定义的变量就是局部变量
#include <stdio.h>
int global = 2023;//全局变量
int main()
{
int local = 2020;//局部变量
printf("%d\n",local);
printf("%d\n",global);
return 0
}
如果局部变量和全局变量,变量名相同的时候,局部变量优先使用。
全局变量和局部变量在内存中存储在哪里?
一般我们在学习C语言的时候,会关注内存的三个区域:栈区、堆区、静态区。
- 局部变量是放在内存的栈区。
- 全局变量是放在内存的静态区。
- 堆区是用来动态内存管理的