C语言入门基础内容篇—基本数据类型

本文介绍了C语言的基础数据类型,包括整型(shortint, int, longint, longlongint)、实型(float, double, longdouble)和字符型(char, unsignedchar)。讲述了它们的区别、内存占用和取值范围,以及无符号类型和别名typedef的应用。
摘要由CSDN通过智能技术生成

以下文章来源于:公_众_号开源电子网
读取更多技术文章,请扫码关注
在这里插入图片描述

C语言入门基础内容篇—基本数据类型

前言

简单来说,C语言程序可以理解为一等式“程序 = 数据结构 + 算法”。其中,“算法”很容易理解,就是解决问题的思路和步骤,“数据结构”直白理解就是研究数据的存储方式。数据存储只有一个目的,为了方便后期对数据的再利用。
这里的基本数据类型就有三类:整型、实型与字符型。

整型

整型,顾名思义,整数类型,也就是没有带小数点的数值类型。整型按占用内存的大小以及数值表示范围分为三种:短整型、标准整型、长整型和长长整型,分别用“short int”、“int”、“long int”和“long long int”表示。
他们的区别如下表所示。
类型 关键字 占用内存 取值范围
短整型 short int(short) 2字节 -32768~32767
标准整型 int 4字节 -2147483648~2147483647
长整型 long int(long) 4字节 -2147483648~2147483647
长长整型 long long int(long long) 8字节 -9223372036854775808~9223372036854775807
假如C语言只使用一种整数类型,这里就存在很多疑问了,“该用多大内存才适合”,“内存大,数值范围就大,存放小数值是不是存在内存浪费”,“内存小,数值范围小,那大数值又不能存放”。综合考虑,整型就有以上四种子类,根据不同的数值大小,使用不同大小字节的内存空间,既不会浪费内存空间,也可以刚好放下合适的数值。
大家记住:内存的最小存储单位为字节(Byte)。
以上的四种整数类型属于有符号的,即把一个整数转换成二进制码,最高位用来标记正负数的符号位。当我们不需要这个符号位,把它也变成数据位,那么就是无符号整型了,就没有表达负数的能力,最终存放的都是正整数。无符号整型的关键字为“unsigned”,前面讲的四种整数类型是属于有符号整型,也有一个关键字“signed”,通常不写出来。注意:默认的整型就是有符号的,假如想使用无符号整型,前面得加关键字“unsigned”。无符号得整数类型对应情况如下表。
类型 关键字 占用内存 取值范围
无符号短整型 unsigned short 2字节 0~65535
无符号标准整型 unsigned int / unsigned 4字节 0~4294967295
无符号整型 unsigned long 4字节 0~4294967295
无符号长长整型 unsigned long long 8字节 0~18446744073709551615

实型

整数类型是没有小数,那么有小数得类型就称为实型,又叫浮点数类型。实型按照内存大小可分为单精度浮点数类型、双精度浮点数类型和长双精度浮点数类型,关键字分为为“float”、“double”和“long double”。他们的区别如下表。

类型 关键字 占用内存 精度 取值范围
单精度浮点数类型 float 4字节 6/7位 -3.402823E+038~3.402823E+038
双精度浮点数类型 double 8字节 15/16位 -1.797693E+308~1.797693E+308
长双精度浮点数类型 long double 不同系统和编译器实现出不同的版本

字符型

1字节大小的整型称为字符型,关键字为“char”,用于字符的表示。简单来说,就是将0~127这个128个正整数作为字符使用,这就是我们常说的ASCII码。
ASCII码相关的资料可以回看前面写的《什么是ASCII码》推文,这里就不重复讲解。
很多时候,我们会把字符型当成整型来使用,当我们在前面加了一个关键字“unsigned”时,那么这时候表示的取值范围就为0~255。有符号与无符号字符型情况如下。
类型 关键字 占用内存 取值范围
字符型 char 1字节 -128~127
无符号字符型 unsigned char 1字节 0~255

附加:

在生活中,我们很多时候都会给某个东西按一个别名,例如NBA球星等。同样的,在C语言中,也允许设置类型的别名,使用关键字“typedef”来设置,具体操作如下:
typedef 原类型名 新类型名;
新类型名跟原类型名表达的意思是一致的,效果一样,那为什么要弄一个新的类型名了?
好处1:简化一些长类型名
typedef unsigned int u16;

好处2:提高程序的通用
给short类型设置一个别名“DATATYPE”,程序中都是使用DATATYPE。
typedef short DATATYPE;
后面发现,short表示的范围不满足现在的需求,需要更大一点,在程序中即修改以下上面的代码即可。
typedef int DATATYPE;

好处3:增加可读性
例如,如果要想知道一个int类型变量的含义,那么使用typedef即可解决。
Typedef int SCORE;
代码中,变量类型使用SCORE,就可以知道该变量表示的是分数了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值