目录
C语言中的数据类型有很多,不知道新学习的小伙伴们有没有搞混呢?有没有在学习的过程中觉得数据类型又多又难记,有好几个还用不上呢?今天我就来给大家梳理一下C语言中的数据类型。
首先数据类型到底是什么呢?它就好比一个个盒子,而变量就是这个盒子的名字,为变量赋值就是向这个盒子里面装东西。没人会把过多的东西装进一个很小的盒子里,C语言也一样。所以要合理的使用数据类型。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 10;//创建了一个变量a,初始化10
//这里就好像是把一个名字叫a的盒子,装进一个东西
//这个东西的大小是10
//而这个盒子的大小是int类型,即4个字节,有很大的范围
return 0;
}
所以,为变量初始化时,放进去的东西不能超过盒子本身的大小,不然放不进去,编译器也会报错,比如下面的情况:
#include<stdio.h>
int main()
{
short a = 1000000;//这里将一百万放进short类型中
//首先short最多能接收32767这么大的数字,将一百万放进去是,超过的部分就会溢出来
//那么打印变量a时就不是一百万,而是一个其他的数字
printf("%d\n", a);
return 0;
}
所以这里只需要简单了解一下,如果所初始化的值超过了数据类型的范围,那么值就会溢出,打印结果也不是初始化的值。
那么每个数据类型的大小和能存储的数有多大呢?下面让我们一起来看看。
一、整型:
整型应该是平时使用最多的类型了,它代表了所有整数。C语言中使用int、short、long关键字来代表整型。
short //短整型
int //整型
long //长整型
long long //更长的整型
介绍数据类型之前,还要知道什么是字节,什么是比特位,什么又是有符号和无符号数。
比特位简称位(bit),是最小的数据存储单位。我们都知道计算机是以二进制方式存储数据的,那么一个比特位就能存储一个数字0或1。
字节(Byte简写成B),是最基本的存储单位。一个字节由八个比特位组成,所以一个字节的大小就是八个比特位。
有符号数简单来说就是有正负的数,无符号就就是只是正数,没有负数。
下面开始介绍数据类型。
short是有符号的短整型,占2个字节,能表示的范围是-2^15~2^15-1,即-32768~32767。
int是有符号的整型,占4个字节,能表示的范围是-2^31~2^31-1。
long是有符号长整型,占4个字节以上(包含4个字节,VS中就是4个字节),能表示的范围是-2^63~2^63-1。
long long是有符号更长的整型,占8个字节,能表示的范围是-2^127~2^127-1。
二、浮点型:
浮点型说白了就是小数,用C语言关键字float、double等表示。
float是有符号单精度浮点型,占4个字节,默认小数点后保留6位数字。
double是有符号双精度浮点型,占8个字节,精度比float高一些,默认小数点后保留15位数字。
注意:如果在以上数据类型前面加上unsigned关键字,那么有符号就会变成无符号数,所占字节数不变,但是能表示的数的范围有所改变。比如unsigned int是无符号整型。
三、字符型:
字符就是能用键盘敲出来的所有内容,比如a、b、#、%、*、~等等,那么字符在C语言中是怎样存储的呢?
我们都知道计算机是以二进制的方式进行存储数据的,那么对于字符来说,有一套标准就是ASCII码,它会将所有字符编一个唯一的号,之后计算机将这个号存储起来就可以了。
ASCII码表如下:
前边的是字符所对应的标号,后面是字符。在C语言中,字符使用char关键字定义的。
char是字符型,用来定义字符的,占1个字节,即8个比特位,能表示的数是-2^7~2^7-1,即-128~127。
以上就是C语言的数据类型了,当然还有不常用的复数、布尔型等。
下面将所有数据类型进行总结一下:
数据类型 | 字节数 | 取值范围 |
---|---|---|
char(有符号字符型) | 1 | -128 ~ 127(2^7~2^7-1) |
unsigned char(无符号字符型) | 1 | 0 ~ 255(0~2^8-1) |
short(有符号短整型) | 2 | -32768 ~ 32767(-2^15~2^15-1) |
unsigned short(无符号短整型) | 2 | 0 ~ 65535(0~2^16-1) |
int(有符号整型) | 4 | -2147483648 ~ 2147483647(-2^31~2^31-1) |
unsigned int(无符号整型) | 4 | 0 ~ 4294967295(0~2^32-1) |
long(有符号长整型) | 4 | -2147483648 ~ 2147483647(-2^31~2^31-1) |
unsigned long(无符号长整型) | 4 | 0 ~ 4294967295(0~2^32-1) |
long long(有符号更长的整型) | 8 | -9223372036854775808 ~ 9223372036854775807(-2^63~2^63-1) |
unsigned long long(无符号更长的整型) | 8 | 0 ~ 18446744073709551615(0~2^64-1) |
float(单精度浮点型) | 4 | 1.17549×10^(-38)~3.40282×10^(38) |
double(双精度浮点型) | 8 | 2.22507×10^(-308)~1.79769×10^(308) |
long double(长双精度浮点型) | 12 | 2.22507×10^(-308)~1.79769×10^(308) |
以上就是我这次分享的内容啦!写的不好,请多担待!