浅谈C语言的基本数据类型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

学习内容梳理。

C语言中的基本数据类型

1.单位

谈基本数据类型之前,首先需要了解一下计算机的存储单位。
首先,计算机由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。因此,计算机内部采用二进制存储信息。一个 二进制位包含的信息量称为比特(Bit)、比特就是组成信息的最小单位。
接下来由小到大谈一谈其他的存储单位。

 1Byte=8Bit  表示范围 :2^n(n代表比特位数),也就是0~255个无符号整数 or -128~127个有符号整数
 1KB=1024Byte   
 1MB=1024KB
 1GB=1024MB
 1TB=1024GB
 1PB=1024TB

用通俗易懂的方式解释1字节(Byte)的表示范围,观察下方八位二进制数字(由低位往高位看,1个比特位代表1位2进制数),上方是00000000,下方是00000001,表示两种状态。由于每一位的状态都只有0或者1,根据排列组合-> 1位二进制数共有两种状态、2位二进制数有4种状态、3位共8种状态、以此类题,8位二进制数就有2^8种状态,由于从0开始,那么其能表示的无符号数就是0~255啦。

00000000
00000001

2.基本数据类型

接下里说说数据类型,C语言中的基本数据类型有以下几类:

基本数据类型						     大小        表示范围
char          //字符数据类型     1Byte		 0~2^8-1个无符号数
short         //短整型 			2Byte		 0~2^16-1个无符号数
int           //整形			4Byte		 0~2^32-1个无符号数   	C中整数默认为int型
long          //长整型			4Byte		 0~2^32-1个无符号数	(不同的系统和编译器的大小可能会是8Byte)
long long     //更长的整形		8Byte		 0~2^64-1个无符号数
float         //单精度浮点型     4Byte		 0~2^32-1个无符号数
double        //双精度浮点型     8Byte 		 0~2^32-1个无符号数      C中浮点数默认为double型

对于整形变量(默认有符号),可以用unsigned(无符号数),signed(有符号数)来修饰。例如:

 unsigned char a = 128;

我们还可以通过打印sizeof(类型名)来得到数据类型的大小。例如:

#include<stdio.h>

int main()
{
    
    
	printf("char的大小是%d个字节\n", sizeof(char));
	printf("int的大小是%d个字节\n", sizeof(int));
	printf("long的大小是%d个字节\n", sizeof(long));
	printf("long long的大小是%d个字节\n", sizeof(long long));
	printf("float的大小是%d个字节\n", sizeof(float));
	printf("double的大小是%d个字节\n", sizeof(double));
	return 0;
}

以上代码在32位VS2017中运行结果如图:
在这里插入图片描述

学过其他编程语言的朋友可能会发现,以上数据类型并没有提到字符串型(string),那么C语言中可以表示字符串吗?答案是可以的, C语言中通过 ->char 字符串名[]= "字符串内容"来定义一个字符串。

3.为什么出现这么多的类型?

  1. 因为对于不同的对象,不同的数据类型更具有代表性。
  2. 因为各数据类型的大小和表示范围不同、给各个类型分到不同的空间,可以达到节约空间的目的。
  3. 便于计算机存储与处理。

4.printf()传参

printf在传入参数的时候如果是整形会默认传入四字节,由于printf是可变参数的函数,所以后面参数的类型是未知的,所以甭管你传入的是什么类型,printf只会根据类型的不同将用两种不同的长度存储。其中8字节的只有long long、float和double(注意float会处理成double再传入),其他类型都是4字节。所以虽然a + b的类型是char,实际接收时还是用一个四字节整数接收的。另外,读取时,%lld、%llx等整型方式和%f、%lf等浮点型方式读8字节,其他读4字节。

总结

以上就是我关于C语言基本数据类型总结的一些笔记,不足之处、欢迎补充指正!

猜你喜欢

转载自blog.csdn.net/weixin_47460769/article/details/111354068
今日推荐