扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
C语言中的sizeof是一个很有意思的关键字,经常有人用不对,搞不清不是什么。我以前也有用错的时候,现在写一写,也算是提醒一下自己吧。反正现在来看,还在搞sizeof是什么意思,怎么用正确,还是有点搞笑,都经常用的东西,没有理解透彻,就差的太远了。
10年积累的成都做网站、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有万州免费网站建设让你可以放心的选择与我们合作。
一 sizeof是什么
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等,sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。这个操作数不好理解对吧?后面慢慢看就明白了。sizeof的返回值是size_t,在64位机器下,被定义为longunsignedint。
二sizeof如何使用
1、用于数据类型
使用形式:sizeof(type)。其中type如int、double等。例如sizeof(int)、sizeof(char*)、sizeof(double)。这个时候sizeof后面的类型必须用括号()包起来,不包起来是错误的,通过不了编译。其中sizeof(void*)在64位下是8,而sizeof(void)是1。其实,在C语言中sizeof(函数),
如sizeof(main),结果也是1。但是在C++中,sizeof(void)和sizeof(函数)都是非法的,通过不了编译,后面C++就不说了,现在讲C嘛。其实sizeof(函数),sizeof(void)虽然是1,但是是不正确的使用方式。
2、用于变量
使用形式:sizeof(var)或sizeofvar。当操作基本数据类型的时候,在我64位电脑的结果如下
作用是:计算常量、变量、数据类型在内存中占用的字节数
三、用sizeof计算常量在内存中占用的字节数
sizeof(1)计算常量1在内存中占用的字节数 4
1默认的事一个10进制的整数(int)4
sizeof(2.3f);计算float类型的常量在内存中占用的字节数4
sizeof(2.3); 计算double类型的常量在内存中占用的字节数8
sizeof('a'); 计算'a'字符常量在内存中占用的字节数 1 4?
1、首先打开VS,新建一个 使用sizeof求出数组的大小 project。
2、接着在左侧文件树添加一个 sizeof.c 源文件。
3、其里面有stdio.h和stdlib.h头文件,也可自己输入。
4、然后输入main函数主体及返回值。
5、定义一个数组,使用sizeof计算出数组的大小。
6、最后编译运行程序,便能输出数组的大小。
在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。
扩展资料
需要注意的是,结构体的 sizeof,由于字节对齐的原因,结构体所占的空间,并不是其所有成员所占空间的累加和。
sizeof 对一个表达式求值,编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进行计算。所以
sizeof(1+2)等价于sizeof(int);
sizeof(1+2.5)等价于sizeof(double)。
sizeof是C语言的一个运算操作符,用来计算系统为后面的一对()中的标识符代表的实体分配的内存空间的字节数,比如sizeof(int)计算系统为int型变量分配的字节数(在32位int平台下是4);若有int a;,则sizeof(a)也能计算出系统为int型变量分配的字节数。再如sizeof(已声明过的数组名),就得到系统为这个数组分配的字节数,而sizeof(指针)则只计算出系统为指针分配的字节数(至于指针指向的内容占多少字节并不得而知)。多说一句,有人把sizeof和函数混淆了,这是不妥的,sizeof不是函数。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流