sizeof(ElemType)这是什么意思为什么会在sizeof函数里面加一个数据类型ElemType

sizeof(ElemType)这是什么意思为什么会在sizeof函数里面加一个数据类型ElemType,第1张

sizeof(ElemType)就是计算ElemType的大小,比如32位 *** 作系统下sizeof(int)就是4,sizeof(char)就是1

(Elemtype )malloc(LIST_INIT_SIZEsizeof(Elemtype))就是申请LIST_INIT_SIZE个Elemtype对象大小的内存然后转换为Elemtype 指针。比如int a = (int )malloc(10sizeof(int)),就是申请连续的10个4字节(总共40个字节)空间,并将其首地址赋给a。

sizeof(a)返回的是对象占用内存的字节数,而asize()是string类定义的一个返回字符串大小的函数,两个是完全不一样的概念。

明确两者的概念和作用:

1、size()函数:

c++中,在获取字符串长度时,size()函数与length()函数作用相同。 除此之外,size()函数还可以获取vector类型的长度。

例如:vector < int> num(15,2) ,则:numsize() = 15。

2、sizeof():

sizeof()运算符用来求对象所占内存空间的大小。

假设以下对象,分别使用sizeof函数:

执行输出结果:

扩展资料

sizeof()是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。

size是由string vector 和bitset定义的函数,分别用于返回字符个数,元素个数和二进制位的数。string和vector的size成员函数用以返回size_type类型的值。bitset返回size_t的值。

用法,例如string

string st("fddddddddgs");

cout<<"the size of"<<st<<"is"<<stsize();

打印st中的字符个数

size其实就是计算不同类型容器中的元素个数的。

参考资料:

百度百科 sizeof()

1用来计算数据类型(包括自定义类型)所占内存空间的字节数

如 sizeof(int)等于4 即是说int型变量占用4个字节的内存

sizeof(int)等于4 因为这是求int型指针,指针变量存储的内容是地址,在32位机上所有类型的地址均长32位,即4字节,所以sizeof(任意类型指针)都为4

2用来计算数组长度

如有 int a[20];那么sizeof(a)就等于其长度20

额,很有用的啊。

比如不知道一个数据长度是多少不知道怎么给他分配内存的时候就要用到。如清空变量A内存:memset(变量A,0x00,sizeof(变量A));这个时候如果是字符串还可以说用数字来代替sizeof,如果是一个大的结构体,那么清空的内存有多少多大就不太好算了所以还是sizeof方便而且不会出错。

又如memcpy(变量A,变量B,sizeof(变量A)); 这样就方便的以变量A的长度来复制内存。

sizeof主要就是用来确保求数据类型长度的时候不出错,一个上百几千行的程序不可能写到后面还要去回到定义的位置再去看变量的数据长度一个sizeof就能确保无误。有的时候就正好当做整型数来用像:strncpy(str1,str2,sizeof(str2)-1);直接进行整型运算就行啦。

以上就是关于sizeof(ElemType)这是什么意思为什么会在sizeof函数里面加一个数据类型ElemType全部的内容,包括:sizeof(ElemType)这是什么意思为什么会在sizeof函数里面加一个数据类型ElemType、C++ 关于size()和sizeof()、C语言中的关键字sizeof是什么作用的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9704708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存