go语言中的sizeof,go语言中的引用类型
sizeof是什么意思?
sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。能获取某个数据类型所占用空间的字节数。
创新互联建站是一家集网站建设,衡阳企业网站建设,衡阳品牌网站建设,网站定制,衡阳网站建设报价,网络营销,网络优化,衡阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Go语言中的字节序
Go中的binary包实现了简单的数字与字节序列的转换以及变长值的编解码
package main
import ( "fmt" "bytes" "encoding/binary" ) func main(){ n := 0x12345678 bytesBuffer := bytes.NewBuffer([]byte{}) //BigEndian 大端顺序存储 LittleEndian小端顺序存储 binary.Write(bytesBuffer, binary.BigEndian, int32(n)) data:=bytesBuffer.Bytes() fmt.Printf("[0]: %#x addr:%#x\n",data[0],data[0]) fmt.Printf("[0]: %#x addr:%#x\n",data[1],data[1]) fmt.Printf("[0]: %#x addr:%#x\n",data[2],data[2]) fmt.Printf("[0]: %#x addr:%#x\n",data[3],data[3]) }
输出
[0]: 0x12 addr:0xc042010248 [1]: 0x34 addr:0xc042010249 [2]: 0x56 addr:0xc04201024a [3]: 0x78 addr:0xc04201024b
也可以使用下面的方式
n := 0x12345678 var data []byte = make([]byte,4) //操作的都是无符号整型 binary.BigEndian.PutUint32(data,uint32(n))
可以使用下面的方式判断当前系统的字节序类型
const INT_SIZE int = int(unsafe.Sizeof(0))
//判断我们系统中的字节序类型 func systemEdian() { var i int = 0x1 bs := (*[INT_SIZE]byte)(unsafe.Pointer(i)) if bs[0] == 0 { fmt.Println("system edian is little endian") } else { fmt.Println("system edian is big endian") } }
sizeof的用法
在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);
在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
1、Pascal中的用法:
如果longint改为Integer,也输出(Pascal中longInt和Integer都是4字节);
2、C语言中用法:判断数据类型长度符的关键字
sizeof (类型说明符)
sizeof 表达式
扩展资料:
sizeof与strlen区别
1、strlen(char*)函数求的是字符串的实际长度,直到遇到第一个'\0',然后就返回计数值,且不包括'\0'。而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度。
sizeof(aa) 返回10 int a[10]; sizeof(a) 返回40
2、sizeof是算符,strlen是函数。
3、sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
参考资料:百度百科——sizeof
sizeof (int)是什么意思? 能具体点吗?
C语言中“SIZEOF(INT)“指的是求括号中的类型,或者变量的大小。
比如这里x应该是个int型数组,那么用这个数组的大小,除以int型数据的大小,就得到这个数组的长度。sizeof是计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。在32位的系统中,sizeof(int)的值为4。如果x是int型的数组,则sizeof(x)/sizeof(int)代表x的位数。
应用
sizeof一般用于获取字符串的长度,是处理字符串的重要工具。
同时,sizeof在数据结构这门课中是创建结点必要的命令。
sizeof(node)表示获取node类型的长度,malloc(sizeof(node))表示在内存中申请一个node长度的空间(即一个空结点)。
以上内容参考:百度百科-sizeof()
当前名称:go语言中的sizeof,go语言中的引用类型
文章源于:http://myzitong.com/article/hcigoj.html