前言:

我们常常在写C语言程序时,总离不开去定义变量。也许需要定义一个整形的,又或是定义一个浮点型的.....那么这时候就需要数据类型啦!又或许你常常因为没有使用合适正确的数据类型造成运行结果溢出等等一些问题。关于常见的一些数据类型(int,char...)大家可能都知道,那么他们的大小、数值范围是多少呢,我们该怎么去具体选择呢,一起来康康叭!

一、数据类型分类

首先,先来整体介绍一下C语言的数据类型分类。

1.基本类型:
(1)整型类型。整型类型包含:基本整型(int)、短整型(short int)、长整型(long int)、双长整型(long long int)、字符型(char)和布尔型(bool)。
注:整型数据可在类型符号前面加修饰符:signed(有符号整数类型)和unsigned(无符号整数类型),若不指定则默认为“有符号类型”
(2)浮点类型。浮点类型包含:单精度浮点型(float)、双精度浮点型(double)和复数浮点型(单精度复数浮点型(float_complex)、双精度复数浮点型(double_complex)和长精度复数浮点型(long long_complex))。
2.枚举类型:
(1)枚举类型。枚举类型就只有枚举类型(enum)。
3.空类型:
(1)空类型。空类型就只有空类型(void)。
4.派生类型:
(1)派生类型。派生类型包含:指针类型(*)、数组类型([])、结构体类型(struct)、共用体类型(union)和函数类型

这里放一张自己画的思维导图叭,便于大家更清楚明易地了解。

二、基本数据类型

这里我们对常用的基本数据类型(整型数据类型、字符数据类型和浮点型数据类型)做一个详细的了解探讨,包括他们的数据类型大小、数值范围以及打印类型等等。

1.数据类型大小

(1)计算机中常用存储单位

说到大小,那么我们就先来简单了解一下计算机中常见的存储单位叭,便于后面知识的更好理解。

从图表中,我们可以看到,最小的存储单位为bit(位或者比特),即为二进制数所存储的位。比位大一点的单位为byte(字节),且1字节=8位

(2)数据类型大小

关于求出他们的数据类型大小,我们需要用到C语言中的一个函数sizeof,这里不对这个函数作过多详细解释,你只需要知道,这个函数的作用是可以求出⼀个对象(数据类型或者数据对象)的长度(即占⽤内存的⼤⼩,以byte为单位)。注意是以字节为单位。

     下面我们展示一下代码及运行结果。

#include <stdio.h>
int main()
{printf("short:%d\n",sizeof(short));printf("unsgned short:%d\n", sizeof(unsigned short));printf("int:%d\n", sizeof(int));printf("unsigned int:%d\n", sizeof(unsigned int));printf("long:%d\n", sizeof(long));printf("unsigned long:%d\n", sizeof(unsigned long));printf("long long:%d\n", sizeof(long long));printf("unsigned long long:%d\n", sizeof(unsigned long long));printf("float:%d\n", sizeof(float));printf("double:%d\n", sizeof(double));printf("char:%d\n", sizeof(char));return 0;
}

由运行结果可知:

char类型的数据类型大小为1字节8位

short类型的数据类型大小为2字节16位

int类型、long类型、float类型的数据类型大小为4字节32位

long long类型、double类型的数据类型大小为8字节64位

注意,若整数数据类型前面加unsigned即为无符号整数数据类型,数据类型大小不变。

(3)符号位

前面我们提到计算机最小的存储单位为bit(位或比特),即二进制数所存储的位。但是对于有符号整数数据类型和无符号整数数据类型,这些存储的“位”具体的意义是不同的。

有符号整数数据类型的存储单元中,左边第一位表示符号位,其余位用来存放数值(如果第一位为0,表示该数为正数;如果第一位为1,表示该数为负数)而无符号整数数据类型所有的位数都是用来存放数值的。比如,long int类型变量有32位存储位数,除去左边第一位表示符号位,剩下表示数值的只有31个比特位,而unsigned long int类型变量,32位都用来存放数值。

2.数据类型的数值范围

这里同样以一个图表进行展示,可在使用时用来查阅~

3.打印输出类型

总结:

当我们在定义变量时,选择正确合适的数据类型,既可以提高空间利用率,同时也可以避免溢出等问题的出现。今天关于数据类型的介绍就这么多啦,我们下次博客见咯~~

C语言之数据类型详解相关推荐

  1. c语言入门数据类型详解,C语言的基本数据类型入门教程

    数据类型包括各种数据类型了我们今天给各位介绍的是我们常用的基本数据类型了,下面一起来看这篇C语言的基本数据类型入门教程吧,具体的如下文介绍. 1.声明头文件,相当于java的导包. //只有函数的声明 ...

  2. C语言的数据类型详解及应用

    引言: C语言是一门广泛应用于系统软件和嵌入式系统开发的高级程序设计语言.在C语言中,数据类型是编程中非常重要的概念,它决定了变量可以存储的数据类型和操作的方式.本文将深入探讨C语言中的各种数据类型, ...

  3. c语言5个数据类型,C语言基本数据类型详解

    原帖地址:http://www.cnblogs.com/jcsu/articles/1317826.html 一.基本数据类型 1. 基本数据类型的分类: C语言中的三种基本数据类型是:整型 .实型  ...

  4. R语言——数据类型详解

    R语言--数据类型详解 R语言支持的数据类型 数值型 整数型 逻辑型 字符型 复数型 原生型 R语言的数据对象类型包括 向量:一个向量只能有一种数据类型 矩阵:一个矩阵只能有一种数据类型 数组:一个数 ...

  5. c语言练习题及答案)(1),c语言练习题(带详解答案)1.pdf

    c语言练习题(带详解答案)1 (-2) -1: 一单项选择题 /为求商运算符,该运算符能够对整型.字符.浮点等类型的数 据进行运算,5/2 2 1.(A )是构成C语言程序的基本单位. 11.如果 i ...

  6. C语言再学习 -- 详解C++/C 面试题 2

    (经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...

  7. python自动解析json_Python语言解析JSON详解

    本文主要向大家介绍了Python语言解析JSON详解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. JSON 函数使用 JSON 函数需要导入 json 库:import jso ...

  8. 开课吧课堂:C++基本数据类型详解

    一般来说在学习C++开发技术的时候,C++数据类型是必然需要了解和学习的,同时也是一名C++开发工程师所需要深入了解的.接下来小编带你一起了解下C++基本数据类型: C++基本数据类型详解 说明符(s ...

  9. 计算机科学类专升本复习之“C语言结构体”详解(初稿)

    C语言结构体详解,C语言struct用法详解 前面所学到的"数组":它是一组具有"相同类型"的数据的集合. 但是在实际的编程中,我们往往还需要 一组" ...

最新文章

  1. JS 获取指定时间的时间戳(兼容各个浏览器)
  2. python续行符是啥_python续行符
  3. 1269: GPA-一题简单英文题~
  4. Unity运行时刻资源管理
  5. 软件工程第四章——软件设计(仅记录我所认为重要的知识点)
  6. 三菱PLC安装报错“工程初始化失败”处理方法
  7. 配合Eclipse MAT工具排查服务器内存溢出问题
  8. 如何用jQuery访问后台API,实现真正的前后端分离
  9. 设置页眉为计算机网络,word文档设置页眉线如题,怎么设置上边的 – 手机爱问...
  10. Ubuntu/Debian 微信安装
  11. 用旧手机搭建服务器保姆级教程,不需要root也能成功
  12. github star整理
  13. HTML5实现动态视频背景
  14. python连接不上数据库_python连接各种数据库
  15. python ppt 图片_python ppt 转 pdf 图片
  16. java基于springboot水果销售商城管理系统
  17. PADS VX2.8 敷铜自动倒角的使用方法
  18. 公众号h5获取手机号权限_微信公众号开发之网页授权(获取用户信息)
  19. 【HTCVR】VRTK插件案例分析之001~010
  20. Coding pages 不见了

热门文章

  1. video.min.js php,用Video.js实现H5直播界面
  2. 《Kafka: a Distributed Messaging System for Log Processing》论文阅读
  3. JavaScript百炼成仙 1
  4. w ndows11如何设置电源选项,苹果安卓都支持 惠普1200W使用指南
  5. C14500碲铜棒C14500对应国标牌号
  6. C语言:用switch语句求分段函数
  7. 广东迅视看2020年三项社会保险基金,首次出现收不抵支?
  8. UMFPACK的使用
  9. 经典语句——经典人生
  10. linux系统查看当前时区,linux修改系统时间和linux查看时区、修改时区的方法