sizeof作用是啥

sizeof作用是啥,看了书知道这个是求数据类型的长度,但是我怎么感觉好象除了求数据类型的长度外,这个没啥别的作用啊,我想说的作用是这个东西应用的地方是一般干啥用的
在线等

额,很有用的啊。
比如不知道一个数据长度是多少不知道怎么给他分配内存的时候就要用到。如清空变量A内存:memset(变量A,0x00,sizeof(变量A));这个时候如果是字符串还可以说用数字来代替sizeof,如果是一个大的结构体,那么清空的内存有多少多大就不太好算了所以还是sizeof方便而且不会出错。
又如memcpy(变量A,变量B,sizeof(变量A)); 这样就方便的以变量A的长度来复制内存。
sizeof主要就是用来确保求数据类型长度的时候不出错,一个上百几千行的程序不可能写到后面还要去回到定义的位置再去看变量的数据长度一个sizeof就能确保无误。有的时候就正好当做整型数来用像:strncpy(str1,str2,sizeof(str2)-1);直接进行整型运算就行啦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-12
C语言中,sizeof()函数返回一个数据类型的占用地址长度。
比如已知int类型在内存中占用四个字节,那么:
int main()
{
int i = sizeof(int);
printf("%d" , i);
return 0;
}
的输出结果就是4。
sizeof()函数在很多时候都有很大的用处。比如在不同的机器上,可能统一数据类型占用的空间不同。假设A机器int 占用2个字节,B机器int占用4字节,那么如果你在申请内存存放一个int数据时,如果代码写入“int *i = (int*)malloc(2);”那么这段代码在A机器可以正常运行,在B机器则会报错。如果写成“int *i = (int*)malloc( sizeof(int) );”那么在两台机器上都可以正常运行
第2个回答  2009-02-05
用于检查占用的内存空间,单位为字节。

例如
sizeof(int);就是返回int类型所占用的内存空间
double b;
sizeof(b);就是返回变量b占用的内存空间大小
第3个回答  2009-02-05
用处很大的,比如在malloc的时候,malloc(sizeof(int))
这句话在32位机和64位机上都能用,而如果你写malloc(4),则通用性变差了
相似回答