关于不同数据类型存储方式的的理解
2013-10-10 22:43
411 查看
计算机的内存中,所有使用的数据都是以二进制的形式线性的存储在内存中。各种编程语言中的定义了很多种不同的类型,根本上讲这些不同类型的变量的存储都是以二进制线性存储的,之所以要定义出这么多类型,只是方便用户(程序员)采用不同的方式引用或者处理这些不同类型的变量。不同的数据类型表现形式不同,但存储的的本质是一样的。看看下面的代码 就知道我在说什么了。
#include<stdio.h> #include <string.h> typedef struct _pack_data{ int a; char b[5]; union pq_pack_data{ long index; long age; }pa_data; }pack_data_t; int main(int argc,char **argv) { char buf[100]; memset(buf,0,sizeof(buf)); pack_data_t pack_data ; pack_data.a = 1; memcpy(pack_data.b,"123",3); pack_data.pa_data.age = 13; memcpy(buf,&pack_data,sizeof(pack_data)); pack_data_t pack_data2; /*把变量pack_data的内容存到buf中,体现了数据的存储本质是一样的,都是存在内存中,跟数据类型无关。在这里buf中有了数据 但是不能用buf[num], **这种方式来访问其中的内容。虽然pack_data的内容是复制到了buf中,但数据的存储方式是以变量pack_data的方式存储的。要打印buf中的数据, **必须采用pack_data变量的格式打印。即有下面的代码: */ memcpy(&pack_data2,buf,sizeof(pack_data)); printf("pack_data2.a = %d\n", pack_data2.a); printf("pack_data2.b = %s \n", pack_data2.b); printf("pack_data2.pa_data.age = %d\n", pack_data2.pa_data.age); return 0; }
相关文章推荐
- java中关于String 类型数据 的存储方式
- java不同数据类型在内存中的存储方式
- java中关于String 类型数据 的存储方式
- Cobol常用数据类型及存储方式小结
- c语言中各数据类型在内存中的存储方式
- javascript ArrayBuffer类型化数组和视图的操作 个人理解类型化数据就是内存分配区域,不同数据的存储就是视图DataView咯 var buffers = []; var jso
- Android 关于数据存储的小案例——SharedPreferences存储方式
- 关于不同应用程序存储IO类型的描述
- hive中不同数据类型存储在Hbase中的格式解析
- Oracle 数据类型及存储方式(四)
- java中的各种数据类型在内存中存储的方式
- 数据结构中,关于“大小端”的数据存储方式的相关问题
- java中的各种数据类型在内存中存储的方式
- 关于 Access 数据库中的数据类型与 Access 项目中的数据类型的不同之处[转]
- java中的各种数据类型在内存中存储的方式
- Oracle 数据类型及存储方式
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
- Java基础之各种数据类型在内存中的存储方式
- MySQL查询中使用Concat关键字来拼接中文字符乱码(不同的数据类型拼接)解决方式
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)