深度剖析数据在内存中的存储1——数据类型

基本内置类型:char,short 、int、 long、 long long 、float、double。
Ps:C语言没有字符串类型,字符串通过字符数组结尾\0表示。
类型意义
1:使用该类型决定开辟内存空间大小(大小决定了适用范围)。
2:决定如何看待内存空间的视角。(eg:char x=1 这个1表示对应asc的字符
int x=1 就是整数1)。
类型归类
整型:(无说明默认都为有符号整数)
1.char:unsigned char、signed char
2.short:unsigned short、signed short
3.int:unsigned int、signed int
4.long:unsigned long、signed long
浮点类型:(本身就为有符号数):float double
构造类型:数组类型、结构体类型、枚举类型(enum)、联合体类型(union)
指针类型:int p、char p、float p、void p
空类型: void:通常用于表示函数返回值为空类型,函数的参数为空,指针类型。
空类型开辟的空间不知道大小,所以不可以用来定义变量。
但是void 为指针空类型,指针空间大小都为4,所以void 是可以存指针的,但是不可以进行解引用。另外,void *** 可用于接受任意类型,常用于接受指针。

原文地址:https://blog.51cto.com/14240895/2382275

时间: 2024-11-01 16:36:00

深度剖析数据在内存中的存储1——数据类型的相关文章

深度剖析数据在内存中的存储2——浮点数数在内存中的存储

根据国际标准IEEE:任意一个二进制浮点数V可以表示为下面形式:(-1)^SM2^E:(-1)^S表示符号位,当S为0,V为正数:当S为1,V为负数.由其物理结构决定了,浮点数为有符号数.M为有效数字,大于等于1,小于2.2^E表示指数位.eg:5=>0101=>(-1)^01.012^2. S=0,M=1.01,E=2规定:对于32位的浮点数(单精度浮点数存储),最高1位是符号位(S),接着的8位为指数位(E),剩下的23位是有效数字位(M),不满23位后面补0.对于64位的浮点数(双精度浮

C/C++数据在内存中的存储方式

目录 1 内存地址 2 内存空间 ??在学习C/C++编程语言时,免不了和内存打交道,在计算机中,我们存储有电影,文档,音乐等数据,这些数据在内存中是以什么形式存储的呢?下面做一下简单介绍. 本文是学习VIPler的博文关于内存地址和内存空间的理解之后整理的,感谢VIPler提供学习资源. 1 内存地址 ??我们经常在书上或者网络上看到4位和8位的内存地址表示方法,比如0x0001或者0x00000001,为什么会有这两种区别呢? ??其实,这两种表示方法都是表示的编号为1的内存地址,都只是一个

堆栈详解(数据与内存中的存储方式)

转自:http://www.360doc.com/content/11/0428/18/6580811_112988089.shtml char* r = "hello word!"; char b[]="hello word!"*r = 'w'; *b='w'; 其实应该是语法错误,可是VC++6.0没有警告或者错误,r指向的是文字常量区,此区域是编译的时候确定的,并且程序结束的时候自动释放的, *r = 'w';企图修改文字常量区引起错误,b的区别在于其空间是在

float数据在内存中的存储方法

浮点型变量在计算机内存中占用4字节(Byte),即32-bit.遵循IEEE-754格式标准.一个浮点数由2部分组成:底数m 和 指数e.                          ±mantissa × 2exponent(注意,公式中的mantissa 和 exponent使用二进制表示)底数部分 使用2进制数来表示此浮点数的实际值.指数部分 占用8-bit的二进制数,可表示数值范围为0-255. 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数.所以f

C语言 float、double数据在内存中的存储方式

float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-255(表示0~255一共256个数),因为指数可正可负,所以IEEE规定,此处算出的次方必须减去127才是真正的指数,所以float的指数范围是 -127(0-127) 到+128(255-127). 底数部分 任何一个数的科学记数法都可以表示为1.xxx*2^n,小数部分就可以表示为xxx,整数部分永远是1,不影响精度,所以

数据在内存中的存储(二进制形式存储)

计算机要处理的信息是多种多样的,如数字.文字.符号.图形.音频.视频等,这些信息在人们的眼里是不同的.但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示. 要想学习编程,就必须了解二进制,它是计算机处理数据的基础. 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别.这些元器件,实际上就是电路:电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压.5V 是通电,用1来表示,0V 是断电,用0来表示.所以,一个元器件有2种状态,0 或者 1. 我们

数据在内存中的存储

一:为什么有符号数是 -128~127? 8个比特位从全零到全一,第一位是符号位,其余位是数值位, 0000 0000 0000 0001 ... 0111 1111 1000 0000   (-128) 1000 0001   (-1) ... 1111 1111  (-127)

数据在计算机中的存储

1.大小端模式(字节序) 大小端的概念:数在内存中分字节存储的先后顺序.大端模式即数的低位存在高地址,高位存在低地址当中.而小端模式相反,低位存在低地址,高位存在高地址.比如0x1234,这里的高低位是从左往右的.0x12是高位,0x34是低位.       1)大端模式: 低地址 -----------------> 高地址 0x12  |  0x34  |  0x56  |  0x78        2)小端模式: 低地址 ------------------> 高地址 0x78  | 

QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QList是一种表示链表的模板类.QList<T>是Qt的一种泛型容器类.它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作.QList.QLinkedList和QVector提供的操作极其相似:* 对大多数操作来说,我们用QList就可以了.其API是基于索引(inde