OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3905|回复: 0

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

[复制链接]

1141

主题

1153

帖子

2

精华

超级版主

Rank: 8Rank: 8

积分
4901
金钱
4901
注册时间
2019-5-8
在线时间
1249 小时
发表于 2022-2-22 14:38:37 | 显示全部楼层 |阅读模式



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




前言

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

       这里的基本数据类型就有三类:整型、实型与字符型。


整型

       整型,顾名思义,整数类型,也就是没有带小数点的数值类型。整型按占用内存的大小以及数值表示范围分为三种:短整型、标准整型、长整型和长长整型,分别用“short int”、“int”、“long int”和“long long int”表示。

       它们的区别如下表所示:

         

       假如C语言只使用一种整数类型,这里就存在很多疑问了,“该用多大内存才适合”,“内存大,数值范围就大,存放小数值是不是存在内存浪费”,“内存小,数值范围小,那大数值又不能存放”。综合考虑,整型就有以上四种子类,根据不同的数值大小,使用不同大小字节的内存空间,既不会浪费内存空间,也可以刚好放下合适的数值。
       大家记住:内存的最小存储单位为字节(Byte)。


       以上的四种整数类型属于有符号的,即把一个整数转换成二进制码,最高位用来标记正负数的符号位。当我们不需要这个符号位,把它也变成数据位,那么就是无符号整型了,就没有表达负数的能力,最终存放的都是正整数。无符号整型的关键字为“unsigned”,前面讲的四种整数类型是属于有符号整型,也有一个关键字“signed”,通常不写出来。注意:默认的整型就是有符号的,假如想使用无符号整型,前面得加关键字“unsigned”。无符号得整数类型对应情况如下表。

         

实型


       整数类型是没有小数,那么有小数得类型就称为实型,又叫浮点数类型。实型按照内存大小可分为单精度浮点数类型、双精度浮点数类型和长双精度浮点数类型,关键字分为

    “float”、“double”和“long double”,它们的区别如下表:


         

字符型

       1字节大小的整型称为字符型,关键字为“char”,用于字符的表示。简单来说,就是将0~127这个128个正整数作为字符使用,这就是我们常说的ASCII码。
       ASCII码相关的资料可以回看前面写的《什么是ASCII码》推文,这里就不重复讲解。
       很多时候,我们会把字符型当成整型来使用,当我们在前面加了一个关键字“unsigned”时,那么这时候表示的取值范围就为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,就可以知道该变量表示的是分数了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 06:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表