我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言中数据类型有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言中数据类型有哪些

这篇文章主要为大家展示了“C语言中数据类型有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中数据类型有哪些”这篇文章吧。

    数据的存储首先就要说到数据的类型,类型决定了看待内存空间的视角。

    C语言的数据类型分为内置类型和外置类型

    1.内置类型

    (1)整型数组

    char(字符型)、short(短整型)、int(整型)、long(长整型)(signed 或者 unsigned

    (2)浮点型

    float(单精度浮点型)、double(双精度浮点型)

    2.自定义类型

    (1)数组类型

    此处需要注意的是,去掉数组名就是数组的类型

    比如int arr[10],去掉数组名arr,int [10]就是数组数据类型

    (2)结构体类型(struct

    (3)枚举类型(enum

    (4)联合类型(union

    C语言中数据类型有哪些

    3.指针类型

    4.空类型(void)

    数据的存储形式就是以计算机的原码反码补码进行存储的

    浮点型:不以原反补的形式进行存储

    其他的数字又分为有符号数和无符号数

    无符号数:无符号数的原反补三种码是一致的,存储的时候没有区别

    符号数来:正数的原反补码是相同的,但是负数的原反补码需要经过运算转化(正数的最高位是0,负数的最高位是1)

    原码:将二进制按照正负数形式翻译为二进制数字

    反码:将原码的每一位取反

    补码:反码+1

    存储的时候一般存储数字的二进制序列补码

    同时数据的存储存在大小端

    内存空间具有编号,编号小的为低地址,编号大的为高地址

    大端存储:数据的低位保存在内存的高地址中

    小端存储:数据的低位保存在内存的低地址中

    每个机器的存储方式不同,可以用如下一段简单代码来观察电脑是哪一种存储方式

    #include<stdio.h>int main(){int a = 1;char* p = (char*)&a;//此处将整型地址强制转化为字符型//强制转化并不影响地址的存储,只会影响读取//指针决定读取内存的位数,字符型指针在解引用时只解1字节,整型指针在解引用时解4字节//a存储时,a是正数,原反补相同//00000000 00000000 00000000 00000001//指针在强制转化为字符型之后只能读取该内存的前8位//如果该指针解引用后结果是1,该数据存储结果为00000001 00000000 00000000 00000000//如果不是,该数据存储结果为00000000 00000000 00000000 00000001if (*p == 1){printf("小端\n");}else{printf("大端\n");}return 0;}

    字符型

    char/signed char 所对应的存储区间为-128~127,同时规定10000000为-128。

    为了理解signed与unsigned,适用如下例题

    #include<stdio.h>int main(){unsigned int i;for (i = 9; i >= 0; i--)//在这个循环开始之前就需要注意到,i需要小于0,该循环才会停止//但是此时的i是一个unsigned类型,本身存储的时候并没有预留符号位,是没有办法破开循环的//该循环是死循环{printf("%d", i);}}

    signedunsigned的区别就在于能否表示正负数

    在数据的存储时,是否存在符号位

    signed char与char类型的存储也可以用一个图来说明

    C语言中数据类型有哪些

    中间的分界线即为正负分界线,第一位即为符号位。符号位为1是负数,符号位为0即为正数

    理解char的存储范围,借用如下例题

    #include<stdio.h>#include<string.h>int main(){char a[1000];int i;for (i = 0; i < 1000; i++){a[i] = -1 - i;}printf("%d", strlen(a));return 0;}//i是int类型,可以随着循环不断增长,但是对于a这个数组来说,能存储的数据有限。//数组a是字符型,字符型数组能存储的范围就是-128~127之间,一共255个数,所以数组长度也是255

    运行结果:255

    int等类型的存储方式与char相似,这里就不在多做赘述

    利用一个例子来证明浮点型存储与整型存储不同

    #include<stdio.h>int main(){int n = 9;float* pfloat = (float*)&n;printf("n的值为:%d\n", n);printf("*pfloat的值为:%f\n", *pfloat);//此处以单精度浮点型的指针取出存储在整形中的数据 *pfloat = 9.0;printf("n的值为:%d\n", n);printf("*pfloat的值为:%f\n", *pfloat);//此处通过单精度浮点型的指针更改原本存储在整型中的数字,并将其更改为单精度浮点型数字return 0;}

    输出结果:

    n的值为:9
    *pfloat的值为:0.000000
    n的值为:1091567616
    *pfloat的值为:9.000000

    由此可见,单精度浮点型的指针并不能成功取出原本存储在整形中的数字,而第二步中通过单精度浮点型的指针所更改的整形的值,n也无法成功取用,所打出来的数字并不是9。由此可见二者的存储方式是存在较大差异的,所以下面对浮点型的存储方式进行讲解。

    浮点型

    浮点型并不依靠数据的原反补码进行存储

    浮点型有其特殊的规定

    C语言中数据类型有哪些

    (E也可以理解为最高此项所对应的阶次)

    用实例来证明一下

    比如8.5这个浮点数

    转化为二进制

    1000.1

    对于这个数而言,存储成图中形式就是

    (-1)^0*1.0001*2^3

    存储就是

    0 00000011 00000000000000000010001

    此时假设我们所申请到的内存是一个条状,那么对于浮点数而言的数据存储方式如图所示

    C语言中数据类型有哪些

     C语言中数据类型有哪些

     单精度浮点型对应的就是图一中所示,SME分布在不同的位置,图二的所示为双精度浮点型,双精度与单精度浮点型所对应的E与M不同。

    (一)

    就是E的值,既不能全为0,也不能全为1,且E的存储值与真实值不相同

    为了表示极小的小数,比如1*10^-10,因为E本身不具有符号位,所以不能表示负数

    单精度:E=真实值+127

    双精度:E=真实值+1023

    加完之后再转化为二进制存储为E,拿出来使用的时候再将这个数字减去

    特殊情况1:E为全0

    单精度的E此时的真实值为-127,该浮点数几乎等于0,是一个几乎不存在的数字

    特殊情况2:E为全1

    单精度的E此时的真实值为128,该浮点数是为正负无穷大的数字

    (二)

    对于M来说,M的值既然是在区间【1,2)之间,则位于整数部分的肯定为1

    再次利用单精度浮点型存储8.5

    该数字的M为1.0001

    为了能让浮点数表达更大的数字,且M中处于个位的数字固定为1,之后就规定,M中个位的1可以不再进行存储,等到取用的时候再进行添加。

    以上是“C语言中数据类型有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    C语言中数据类型有哪些

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    C语言中数据类型有哪些

    这篇文章主要为大家展示了“C语言中数据类型有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中数据类型有哪些”这篇文章吧。数据的存储首先就要说到数据的类型,类型决定了看待内存空间的视角。
    2023-06-25

    c#语言的数据类型有哪些?

    c#支持多种数据类型,包括整数、浮点数、字符和布尔值等基础类型,以及字符串、数组、类和枚举等复杂类型。可以使用类型说明符(var、类型名称、泛型类型、可空类型)指定变量类型,并支持隐式和显式类型转换。C#中的数据类型C#是一种强类型语言,
    c#语言的数据类型有哪些?
    2024-04-04

    go语言中数据类型有哪些

    这篇文章将为大家详细讲解有关go语言中数据类型有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。go语言的数据类型有:1、布尔型;2、数值类型(可分为整型和浮点型);3、字符串类型;4、指
    2023-06-15

    c语言中的小数类型有哪些

    c 语言小数类型有:float:单精度浮点数,精度 7 位,占用 32 位内存。double:双精度浮点数,精度 15 位,占用 64 位内存。选择类型依据精度需求,精度低用 float,高用 double。浮点数可隐式转换但丢失精度,极大
    c语言中的小数类型有哪些
    2024-04-28

    c语言的基本数据类型有哪些

    C语言的基本数据类型有以下几种:1. 整型(int):用于表示整数,包括正整数、负整数和零。可使用关键字int声明,占用4个字节。2. 字符型(char):用于表示字符,包括字母、数字和特殊符号。可使用关键字char声明,占用1个字节。3.
    2023-09-20

    R语言中的数据类型有哪些

    这篇文章给大家介绍R语言中的数据类型有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以上数据类型均为原子向量。单引号和双引号不做区分。R语言中TRUE和FALSE 可以简化为T和F多元素向量的生成方式方式 1:使用
    2023-06-14

    R语言数据类型有哪些

    这篇文章主要介绍了R语言数据类型有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。R语言用来存储数据的对象包括: 向量, 因子, 数组, 矩阵, 数据框, 时间序列(ts)
    2023-06-14

    go语言的数据类型有哪些

    go语言的数据类型有基本数据类型、复合数据类型、引用类型和特殊数据类型等。详细介绍:1、基本数据类型有bool、int、uint、float32、float64、complex64等;2、复合数据类型有string、array、slice、
    2023-07-31

    C语言数据类型和变量常量有哪些

    这篇“C语言数据类型和变量常量有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言数据类型和变量常量有哪些”文章吧。首
    2023-06-26

    c语言数据类型转换的方法有哪些

    在C语言中,数据类型转换有以下几种方法:1. 隐式转换:当两个不同类型的数据进行运算或赋值时,编译器会自动进行隐式转换。2. 显式转换:通过使用类型转换操作符将一个数据类型转换为另一个数据类型。例如,使用`(int)`将一个浮点数转换为整数
    2023-10-10

    C语言中的运算类型有哪些

    这篇文章主要介绍“C语言中的运算类型有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言中的运算类型有哪些”文章能帮助大家解决问题。一、概述C语言中支持下面4种类型的运算运算类型运算符四则运算
    2023-06-30

    R语言中的列表数据类型有哪些

    在R语言中,列表(list)是一种非常灵活和强大的数据类型,可以存储不同类型的数据,也可以嵌套存储其他列表。以下是列表数据类型的一些常见用法:用list()函数创建列表:my_list <- list(name = "John", age
    R语言中的列表数据类型有哪些
    2024-04-03

    C#数据类型有哪些

    C#的数据类型有值类型、引用类型、空类型、特殊类型、集合类型、日期时间类型等。详细介绍:1、值类型包括整数类型、浮点数类型、字符类型、布尔类型、枚举类型、结构体类型;2、引用类型包括字符串类型、数组类型、类类型、接口类型、委托类型;3、空类
    2023-10-22

    Python语言中的内置数据类型有哪些

    今天小编给大家分享一下Python语言中的内置数据类型有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:计算机能处理
    2023-06-29

    c语言标识符类型有哪些

    这篇文章主要讲解了“c语言标识符类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言标识符类型有哪些”吧!c语言标识符有三类:1、关键字,是由C语言规定的具有特定意义的字符串,通常
    2023-07-04

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录