c# 数据类型占用的字节数

来源:互联网 发布:大数据广告精准投放 编辑:程序博客网 时间:2024/06/08 20:01
bool -> System.Boolean (布尔型,其值为 true 或者 false)byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)char -> System.Char (字符型,占有两个字节,表示 1Unicode 字符)short -> System.Int16 (短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767)ushort -> System.UInt16 (无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535)uint -> System.UInt32 (无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295)int -> System.Int32 (整型,占 4 字节,表示 32 位整数,范围 -2,147,483,6482,147,483,647)float -> System.Single (单精度浮点型,占 4 个字节)ulong -> System.UInt64 (无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 1020 次方)long -> System.Int64 (长整型,占 8 字节,表示 64 位整数,范围大约 -(1019) 次方 到 1019 次方)double -> System.Double (双精度浮点型,占8 个字节) 

【PS】这里写图片描述

“`
那么,引用类型占几个字节呢?对象类型可以理解为指针变量,指针变量保存的是地址,32位机寻址就是32位,所以是4字节,不过这是在线程栈中占用4个字节,用来指向托管堆中实际内容的首地址,值是存在堆里的,具体在堆里占几个字节就不一定了(不过赋值为NULL的时候,不在堆里分配空间,倒是可以认为它就只占那4个字节……)我试过一个空类(无属性,无字段,无方法,object为基类),是占12个字节(里面包有头部的基类指针还有尾部的线程标识神马的各4个字节,其余是属性占用的空间,这个不确定。。)。

“`
【相关阅读】

引用类型变量占几个字节 http://bbs.tarena.com.cn/archiver/tid-198197.html

指针变量占几个字节 http://www.cnblogs.com/liwen/archive/2011/07/20/2111780.html

栈和托管堆/值类型和引用类型/装箱和拆箱 http://www.cnblogs.com/xy8.cn/articles/1227228.html

分类: Misc

0 0
原创粉丝点击