C语言基本数据类型

目录

一、数据类型的分类

1、字符型

2、整型

(1)整型

(2)短整型

(3)长整型

(4)更长的整型

3、浮点型

4、布尔类型

二、signed 和 unsigned

三、数据类型的长度和取值范围

1、字节

2、sizeof

四、小结 


一、数据类型的分类

       C语言提供了丰富的数据类型来描述生活中的各种数据。比如使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数等等。下面是C语言提供的各种数据类型。

       数据类型主要包括内置数据类型和自定义类型,本次我们主要讨论的是内置数据类型。

1、字符型

       我们用 char 来定义字符型的数据,用来存放字符,字符型的声明变量占用4个字节。

2、整型
(1)整型

       我们用关键字 int 来定义整型变量,用来存放整数,整型的声明变量占用4个字节。

(2)短整型

       我们用 short int 来定义比 int 更短的整型变量,短整型的声明变量占用2个字节。

(3)长整型

       我们用 long int 来定义较长的整型变量,长整型的声明变量占用4个字节。

(4)更长的整型

       我们用 long long int 来定义更长的整型,更长整型的声明变量占用8个字节。long long int 是C99标准中新引入的数据类型。

       可以发现,int 与 long int 声明变量占用的内存空间是一样的,这是因为在C语言的标准中 int 占用的内存空间只需要大于等于 long int 占用的内存空间。至于占用的具体的内存空间是编译器决定的,所以当我们需要存储更大的数据时,可直接选用 long long int 来定义变量的数据类型。当我们使用后三种整型关键字时,后边的 int 可省略不写,例如,长整型 long int 可写为 long。

3、浮点型

       浮点型又分为单精度浮点型和双精度浮点型,分别用 floatdouble 来定义。float 的声明变量占用4个字节,double 的声明变量占用8个字节。

4、布尔类型

       在C99中新引入了布尔类型 _Bool 专门用来表示真假,在这之前我们用整数 1 和 0 分别表示真假,而布尔类型变量的取值是 true 或者 false。需要注意的是,布尔类型的使用需要包含头文件 <stdbool.h>。

二、signed 和 unsigned

       C语言使用 signed 和 unsigned 关键字修饰字符型和整型类型。signed 表示一个数据类型带有正负号,包括负数、正数和零;unsigned 表示该类型不带有正负号,只能表示零和正整数。

       对于 int 类型,默认是带正负号的,也就是说 int 等同于 signed int,所以,关键字 signed 一般省略不写。int 类型也可以不带正负号,只表示非负整数,必须用关键字 unsigned 声明变量。整型变量声明为 unsigned 的好处是,同样长度的内存表示的最大整数值可以增加一倍。例如 signed short int 的取值范围是:-32768~32767,最大值为32767;而 unsigned short int 的取值范围是0~65535,最大值为65535。另外,unsigned int 中的 int 也可以省略,简写为 unsigned。

       char 类型也可以分为 signed 和 unsigned。与 int 不同的是,char 不等同于 signed char,char 可能是 singed char,也可能是 unsigned char。char类型默认是否带正负号是由当前系统决定的。所以,对于char类型,signed 和 unsigned 并不常用。

三、数据类型的长度和取值范围

1、字节

       字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。计量存储空间的单位还有bit、kb、mb、gb、tb、pb等,它们之间的关系如下:

1byte(字节)=8bit    1gb=1024mb

1kb=1024byte            1tb=1024mb

1mb=1024kb              1pb=1024tb

       数据类型长度的单位就是字节。

2、sizeof

       每一种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,变量长度的不同,存储的数据值的范围也有所差异。sizeof 是一个关键字,也是操作符,是用来计算 sizeof 的操作符数的类型长度的。单位是字节。

       sizeof 操作符的操作数可以是类型,也可以是变量和表达式。操作数如果是数据类型,则需要在类型两边加上括号;如果是表达式,则可以省略括号。

       sizeof 的计算结果是 size_t 类型的。关于 sizeof 运算符的返回值,C语言只规定是无符号整数,并未规定具体的类型,可能是整型、短整型、长整型,甚至是更长的整型。为了解决这个问题,C语言创造了一个类型 size_t,用来统一表示 sizeof 的返回值类型。

       下面我们用代码运行看一下上面提到的各个数据类型的长度。

       需要注意的是,sizeof 后面的表达式不真实参与运算,sizeof 的值是由数据类型决定的。如果 sizeof 后面的操作数是表达式,运行代码时,编译器不会执行表达式。

       由此可见,sizeof 操作数中的表达式不会被执行。

四、小结 

数据类型

名称

占用内存

取值范围

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

float

单精度浮点型

4 byte

1.2E-38 ~ 3.4E+38

double

双精度浮点型

8 byte

2.3E-308 ~ 1.7E+308

unsigned int

无符号整型

4 byte

0 ~ 4,294,967,295

unsigned short

无符号短整型

2 byte

0 ~ 65535

unsigned long

无符号长整型

4 byte

0 ~ 4,294,967,295

_Bool布尔类型1 bytetrue 或 false
long long int更长的整型8 byte-9223372036854775808 ~ 9223372036854775807
unsigned long long无符号的更长的整型8 byte0 ~ 18446744073709551615

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值