c语言数据类型与存储

掌握C语言数据类型与存储类 本文深入探讨了C语言中的数据类型与存储类的概念。从基本的整数类型到浮点数类型,再到如何使用typedef简化数据类型的定义,以及变量和函数的存储类属性,本文对C语言的数据结构提供了全面的理解和使用方法。... 阅读详情

目录

数据类型

数据存储


数据类型

C语言中,有int、short,float、double、long、char、bool等常用数据类型。

 以下通过代码获取数据类型所占字节的大小。注意:32位和64位环境下结果可能不同。

#include<stdio.h>
int main()
{
int a=10;
short int b=5;
long int c=8;
long long int d =16;
char e='k';
float f=1.123456789;
double g=9.87654321123456789;

printf("a size is=%d, a value is=%d\n",sizeof a,a);
printf("b size is=%d, b value is=%hd\n",sizeof b,b);
printf("c size is=%d, c value is=%ld\n",sizeof c,c);
printf("d size is=%d, d value is=%lld\n",sizeof d,d);
printf("e size is=%d, e value is=%c\n",sizeof e,e);
printf("f size is=%d, f value is=%.10f\n",sizeof f,f);
printf("g size is=%d, g value is=%.17lf\n",sizeof g,g);

return 0;
}

输出:

a size is=4, a value is=10   (int)
b size is=2, b value is=5     (short)

c size is=4, c value is=8     (long)

d size is=8, d value is=16  (long long)

e size is=1, e value is=k    (char)

f size is=4, f value is=1.1234568357  (float)

g size is=8, g value is=9.87654321123456747  (double)

在看f和g的输出的时候,我们发现f和g并没有打印出正确的值。

原因是:

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

%.17lf和表示输出双精度浮点数的小数点后17位,如果是%30.17lf表示输出的值所占宽度为30,小数点位数占17位。

 

其中sizeof和strlen的区别:

sizeof()函数表示返回一个对象或者类型所占的内存字节数。

如果是求字符串的字节数,那么sizeof所返回的字节数包含结束符"\0",    而strlen不包含。

比如char a[]="hello";sizeof(a)的返回字节数是6,strlen(a)返回的字节数是5。

 

---------------------------------------------分隔符-------------------------------------------------------

数据存储

在计算机里,首先我们知道 对于有符号正数,它的最高位是符号位,0是正,1是负。

正数:数值按原码存储(原码是这个数本身的二进制形式,而且正数的反码和补码都和原码相同)

负数:数值按补码存储    -->反码+1得到补码    (反码是原码除最高位之外的其余按位取反得到)

char A=128;    printf("%d\n",A); 输出-128,为什么是-128呢。    

char 字符型的存储范围是 (-128-127),在计算机中,

                                    (取反)                                    (+1)

 1000 0000 (128)(原码)  --------->得到 1111 1111(反码) ---------->得到1000 0000 (补码) = -128

注意:1是符号位,代表负,所以是-128

下一篇 C语言运算符

 

C语言图形化界面——含图形、按钮、鼠标、进度条等部件制作(带详细代码、讲解及注释) 本文借助easyx库函数(提供下载链接),很方便地用C语言实现了鼠标、按钮、进度条、坐标尺等操作,为普通C程序的友好人机交互界面提供了一种简单便捷的方案。 阅读详情

相关推荐

⑨【从0制作自己的ros导航小车:上位机篇】04、使用gmapping建图

前面的文章已经能够实现在odom坐标系下显示小车模型和里程计数据了,本文加上激光slam必不可少的传感器雷达,先进行测试,然后直接开始建图!

海风的博客 2915

C语言数据的存储

C语言的内置类型char 字符数据类型 1字节(8bit位)short 短整型 2字节(16bit位)int 整型 4字节(32bit位)long 长整型 4/8字节long long 更长的整型 8字节float 单精度浮点型 4字节double 双精度浮点型 8字节。

qq_66238381的博客 2364

步进电机

步进电机

happygrilclh的博客 2140

C语言之数据的储存

目录 数据类型的介绍 类型的意义: 类型的基本归类 整形家族 浮点数家族 构造类型——自定义类型 指针类型 空类型 整形在内存中的存储 原码反码与补码 补码思想 大端小端字节序 浮点型在内存中的存储 浮点数表示形式 举例说明: IEEE 754规定浮点数存储方式 对于有效数字M规定 对于指数E规定 从内存中取出 经典案例 数据类型的介绍 char:字符数据类型——1字节 short:短整型——2字节 int:整形——4字节 long:长整型——4字节 .

m0_60027772的博客 1536

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 351

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 193

C语言:数据的存储

C语言:数据的存储

tydo达令的博客 2144

智能化运维(AIOps)

• 调查显示,54.79%的企业当前着重关注智能运维的质量领域(包括异常检测、告警收敛、根因分析、 故障处置等)能力建设,其次45.77%的企业关注效率领域,45.49%的企业关注成本领域,30.82%的 企业关注安全领域。从目前的发展情况来看,现阶段AIOps能力大多集中在L2级别, 主要以系统辅助分析,帮助人工进行决策和操作为主,较为领先的 能力实践可以达到L3级别,而L4和L5级别随着AIOps的技术发展 和能力的逐步增强,将是未来智能运维能力建设的发展方向和目标。

追求更专业的设计 3095

C语言数据类型存储

详细讲解数据在内存中的存储

muwithxi的博客 1297

【ArcGIS】07 ArcHydroTools对COM组件的调用返回了错误

在用Arc Hydro Tools提取流域时,在DEM Reconditioning时可能会遇到这个问题: 经过摸索,发现了问题产生的原因: 结果文件保存在了有中文的路径中。 解决的办法: 首先,把ArcGIS切换成英文版 搜索ArcGlS Administrator,以管理员方式打开 点击高级,选择语言为English 其次,新建mxd文档 删除原来的mxd文档,新建mxd文档,放置原来的图层文件。如果不这样做,最后一步的Map Name还会是“图层”这两个汉字。 最后,设置Arc Hydro T

记录专业模型开发、算法程序设计、软件学习笔记、生活日志。 4918

CloudCompare&PCL 体元累加法(树冠体积计算)

文章目录

dayuhaitang1的博客 1552

C语言的数据类型及其存储方式

C语言的数据类型及其存储方式前言一、C语言的数据类型1.常见的数据类型2.整型家族3.构造类型4.指针类型二、整形在内存中的存储1.源码、反码和补码二、使用步骤1.引入库2.读入数据总结 前言 阿斯顿 一、C语言的数据类型 1.常见的数据类型 下面是几种C语言常见的数据类型 char 字符数据类型 short 短整型 int 整型 long 长整型 long long 长长整型 float 单精度浮点型 double 双精度浮点型 C99新增了_

weixin_44614083的博客 8468

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C语言:变量、数据类型与内存存储详解

该笔记为 C 语言学习资料,主要围绕变量、基本数据类型、常量及标识符展开。变量部分介绍了其定义(程序运行中值可变的量)、初始化与赋值方式、命名规则(需以字母或下划线开头,不与关键字重名)及与内存的关系(代表特定存储单元)。基本数据类型涵盖整型(short、int、long、long long 及其字节大小)、浮点型(float、double、long double 的字节与精度)、字符型(char,1 字节,存储 ASCII 码),并说明了各类型在内存中的存储形式(如整型以补码存储,浮点型遵循 IEEE 7

2301_79457988的博客 2421

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言数据类型及存储规则

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数..

weixin_50440558的博客 848

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C语言数据类型及存储

自定义类型是描述复杂的含义,用单一的内置类型无法描述时,所使用的类型,是由用户自己来定义的,通俗一点说就是DIY。告诉编译器我有这个变量,而他的值未知,这是声明。声明后给变量赋值,系统会为变量开辟空间来存储数据,这是定义。也就是说,声明和定义的区别就是有没有分配内存。变量的声明和定义方法如下int age;// 数据类型 变量名称;这一步是声明age = 0;//分配内存空间,存储数据,这一步是定义//声明的时候给他初始化,分配内存空间了,是定义。

2301_79969685的博客 1026

深度解析C语言数据类型:从char到double的存储秘密

本文深入解析C语言基础数据类型的存储原理,分为整型、浮点型和字符型三大类。整型数据采用补码存储以简化运算,浮点型遵循IEEE 754标准拆分符号位、指数位和尾数位,字符型则以ASCII码整数值存储。通过代码示例和内存图示,详细演示了-5的补码表示、12.5的浮点存储结构及字符'A'的ASCII编码。文章还探讨了类型转换规则和数据溢出陷阱,强调合理选择数据类型对优化内存和提升性能的重要性,为深入理解程序运行机制提供了实用指导。

user340的博客 1560

C语言中的数据类型与内存存储详解

理解C语言中的数据类型及其在内存中的存储方式,对于编写高效、可靠的代码至关重要。通过掌握原码、反码、补码的概念,以及大端字节序和小端字节序的区别,可以更好地理解整型数据的存储。同时,了解IEEE 754标准对于浮点数的存储方式,有助于避免浮点数运算中的精度问题。

在不断学习中 1312

C语言基本数据类型的存储

学习C语言时,我对于C语言基本数据类型不太懂。后来学习计组之后,了解了计算机内部数据的存储。这篇文章将从底层,剖析基本数据类型在计算机中是如何存储。 整型数据的表示方法 在计算机中,数据以二进制的方式存储,即我们平时所使用的十进制数,都会被转化为0101等数据。如十进制的12,转化成二进制就是1010。 我平时习惯将四个二进制数写在一起,第一,便于书写时一眼能看清位数;第二,也便于二进制与16进制的转换。 比如十进制数99,我会先看成64+32+2+1,因此转换成二进制数的时候,就是0110 0011

乌有先生ii的博客 1827

C语言数据类型和存储

C语言数据类型归类,C语言基本数据类型,整型和浮点型在内存中的存储,大小端介绍

weixin_56810796的博客 617

1.C语言数据类型与存储

本文总结了C语言数据类型与存储的核心知识点。主要内容包括:字符与整数的ASCII码转换关系,变量命名规范与风格,各基本数据类型的大小和范围(含32位系统下char、int、float等),整数的补码存储原理及示例。同时介绍了类型隐式转换、强制转换、浮点数科学计数法存储,以及重要注意事项:字符串常量只读性、转义字符用法。最后给出了5个实用技巧:变量初始化、类型匹配、溢出检测、浮点数比较和字符串安全操作。这些内容为C语言基础学习提供了全面的参考。

qq_61013770的博客 939

C语言的数据类型以及数据存储

本文介绍了C语言中数据类型在内存中的存储方式。整型数据(char、short、int等)以补码形式存储,补码表示便于统一处理符号位和数值运算。浮点型数据(float、double)遵循IEEE 754标准,采用(-1)^SM2^E的形式存储。文章还解释了原码、反码、补码的转换规则,以及大端和小端存储模式的区别。通过具体示例分析了不同类型数据的存储过程,包括整型提升和截断现象,并详细说明了浮点数的二进制表示方法及其与十进制之间的转换原理。

2501_93847065的博客 1268

C语言中的数据类型及数据的存储

char 字符数据类型 内存中占1个字节short 短整型 内存中占2个字节int 整型 内存中占4个字节long 长整型 内存中占4个字节long long 更长的整型 内存中占8个字节float 单精度浮点型 内存中占4个字节double 双精度浮点型 内存中占8个字节1.什么是大端小端大端(存储)模式,将数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中。小端(存储)模式,将数据的低位保存在内存的低地址中,数据的高位保存在内存的高地址中。...

Glendonduke的博客 1225

C语言中数据在内存如何存储——数据类型

数据类型 【知识点】 数据类型 整型 字符型 实数(浮点型)型 【内容】 一、数据类型 C语言要求在定义所有的变量时都要指定变量的类型。常量也是区分类型的。 在数学中,数值是不分类型的,数值的运算是绝对准确的,例如:78与97之和为175,1/3的值是0.33333...(循环小数)。数学是一门研究抽象的学科,数和数的运算都是抽象的。 而在计算机中,数据是存放在存储单元中的,它是...

涔曦的博客 1万+

C语言操作符和数据类型的存储详解

操作符分类: 算数操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用,函数调用和结构成员 一算数操作符: +(加法操作) -(减法操作符) *(乘法操作符) /(除法操作符) %(取余操作符) 除了%操作符之外,其他的几个操作符可以作用于正数和浮点数。 对于/操作符如果两个操作符都为整数,执行整数除法,而只要有浮

lh11223326的博客 1561

数据类型及其存储方式(C语言详解)

数据类型及其存储方式数据类型整型家族浮点型家族构造类型指针类型空类型数据的存储整型存储原码、反码、补码大小端存储模式浮点数存储 在c语言中数据类型基本可分为:整型家族、浮点型家族、构造类型、指针类型和空类型。下面主要详细介绍整型和浮点型在内存中是如何存储的。 数据类型 整型家族 整型家族成员有: char----unsigned char、signed char short----unsigned short、signed short int----unsigned int、signed int long

潘潘的博客 5006
下一篇: c语言运算符介绍
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值