首页 > 编程知识 正文

c语言sizeof求结构体长度,c语言程序运算符sizeof

时间:2023-05-05 12:12:24 阅读:162531 作者:3764

在c语言中,定义数组后,可以通过sizeof命令获得数组的长度(可容纳的元素的个数)。

例如:

int data[4]; int length; length=sizeof(data )/sizeof (data [0] ); //数组占用内存的总空间,除以各个元素占用内存空间的大小得到的printf('lengthofdata[4]=%d ',length ); 输出length of data[4]=4,但不可能将数组名称参数传递给子函数以获得数组长度。

例如:

intgetlength(int[]a ) { int length; length=sizeof(a )/sizeof ) a[0]; //这是错误的,得到的结果总是1return length; }因为,a是函数自变量,所以在本函数中,a只是指针(地址),在系统执行本函数的期间,不知道a表示的地址拥有多大的数据存储区域。 在这里,只是告诉函数数据存储领域的起始地址) (sizoef(a ) )的结果,指针变量a占据了存储器的大小,通常在32位机器上是4字节。 a[0]是int类型,sizeof(a[0]也是4字节,所以结果总是1。 3、因此,要获得数组长,在存在数组定义的代码区域,必须采用上述方法才能获得效果。

还请注意,在c语言中,格式数组和字符数组的大小存在差异。 整形数组大小: sizeof (数组名称)/sizeof (数组类型)。 字符数组大小: strlen (数组名称) 1,1为加“/0”,再加1。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。