在学习go语言的时候,首先学习基础类型,了解基础类型的内存大小
在C语言中,通常可以通过sizeof()函数求对应的类型占内存字节数多少
例如:
得到int是4字节
但是在Go中使用sizeof这个函数求对应类型的大小时,遇到了问题。
具体问题如下:
编译报错如下:
最后通过查看unsafe.Sizof函数的源码注释:
// Sizeof takes an expression x of any type and returns the size in bytes // of a hypothetical variable v as if v was declared via var v = x. ...
发现在go中,sizeof传入的应该是一个表达式,而不能是一个数据类型(础数据类型,结构体数据类型等)
修改上面go程序如下:
在这里面a可以看成是一个无运算符的表达式同样int(1)也是,均正常输出了int的字节数为8,64位
=========
本人刚刚从C转到go,有理解不够的地方还请大家多多指教,感谢。