C语言基本数据类型

本文详细介绍了C语言中的内置数据类型,包括字符型、整数类型(如int、short、long和longlong)、浮点型(float、double、longdouble)、布尔类型以及无符号类型。还讨论了sizeof操作符用于测量数据类型长度的方法和各类型的基本取值范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们将生活中的不同数据根据它们的共同特征分为不同的“类型”,只有知道了数据的类型,编译器才能知道如何操作这些数据。C语言为我们提供的各种数据类型可以分为内置类型和自定义类型,在本篇文章中主要探讨内置数据类型。

内置数据类型可分为:

  • 字符型
  • 整数类型
  • 浮点型
  • 布尔类型

1.基本数据类型分类

1.1字符型char

字符型数据类型关键字为char,用于存放字符;

1.2整数类型int

整数型数据类型用于存放整数数字,可分为:

  • 整型int
  • 短整型 short
  • 长整型long
  • 更长的整型long long(在C99中引入);

1.3浮点型float

浮点型数据类型用于存放小数数字,可分为:

  • 单精度浮点型float
  • 双精度浮点型double
  • 多精度浮点型long double(在C99中引入);

1.4布尔类型bool

布尔类型是在C99中引入的,用来表示真假。

  • bool类型的使用需要引用头文件<stdbool.h>
  • bool变量的取值是ture或者false

代码演示:

#include <stdio.h>
#include<stdbool.h>
int main()
{
	bool flag = true;
	if (flag)
	printf("1\n");
	else
	printf("0\n");
		
	return 0;
}

代码运行结果如下:

1.5无符号型unsigned

  • signed关键字:表示一个类型带有正负号,包含负数;
  • unsigned关键字:表示一个类型不带有正负号,只包含0和正数;

对于int类型来说,默认是带有正负号的,也就是int 等于signed int; 当我们需要使用无符号数时,就需要用到unsigned关键字。

unsigned 可以搭配int,short,long,long long 一起使用来表示无符号数。

  • unsigned int 或者unsigned :无符号基本型
  • unsigned short:无符号短整型
  • unsigned long:无符号长整型 

对于char类型来说,也可以设置signed 和 unsigned 。

但是需要注意的是,在C语言中,char类型默认是否带有正负号是由当前系统决定的。也就是说,char类型不等于 signed char ,也不等于 unsigned char。

注意:在C语言中不能定义unsigned float 和unsigned double,否则系统会报错。

2.基本数据类型的长度

每种基本数据类型都有不同的长度,使用不同的数据类型,我们可以创建出不同长度的变量。我们在使用数据类型时,需要根据数据类型的长度进行合适的选择。

2.1 sizeof操作符

sizeof可以用来测量sizeof中操作符数类型长度的操作符,也是一个关键字。操作数可以是类型也可以是变量或者表达式,单位是字节。

2.2使用sizeof操作符计算基本数据类型长度

代码如下:

#include <stdio.h>
int main()
{
	printf("字符型数据占用%zd个字节\n", sizeof(char));
	printf("整型数据占用%zd个字节\n", sizeof(int));
	printf("短整型数据占用%zd个字节\n", sizeof(short));
	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));
	printf("布尔类型数据占用%zd个字节\n", sizeof(_Bool));
	return 0;
}

运行结果如下:

通过sizeof操作符我们可以直观的看出不同数据类型的长度;

注意:sizeof操作符后是表达式的时候可以省略掉括号,是表达式的时候,表达式不参与运算,只根据表达式的类型计算结果。

3.基本数据类型的取值范围

C语言中每种数据类型都有自己的取值范围,我们可以根据自己的实际需要来选择合适的数据类型。

  • <limits.h> 这个头文件中说明了整数类型的取值范围;
  • <float.h >这个头文件中说明了浮点型的取值范围。

在上文中我们已经知道每种数据类型的长度,以[signed] int 整型数据为例,占用4个字节,1字节=8 bit;即32位,2^32=4,294,967,296; 即int型变量的取值范围为-2,147,483,648到2,147,483,647

根据上述办法我们可以计算出其他数据类型的取值范围。

4.小结

如下表:

数据类型名称长度取值范围
char字符型1 byte

-128到127或

0到255

int整型4 byte

-2,147,483,648到

2,147,483,647

short短整型2 byte

-32,768到

32,767

long长整型4 byte

-2,147,483,648到

2,147,483,647

long long更长的整型8 byte

-9,223,372,036,854,775,808到

9,223,372,036,854,775,807

float单精度浮点型4 byte

-2,147,483,648到

2,147,483,647

double双精度浮点型8 byte

9,223,372,036,854,775,808到

9,223,372,036,854,775,807

long double多精度浮点型8 byte

9,223,372,036,854,775,808到

9,223,372,036,854,775,807

bool布尔类型1 byteture或false
unsigned int无符号整型4 byte

0到4,294,967,295

unsigned short

无符号短整型2 byte0到65535
unsigned long无符号长整型4 byte0到4,294,967,295

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值