c语言结构体类型数组长度

2024-11-08 12:12:05
推荐回答(5个)
回答(1):

输出2是正确的,原因如下:
strlen()是找出字符数组当中‘\0’(00H)前面有几个字符。

你的
card[0].num=1000;
转换为字符型(数据格式为小端对齐)数组之后为E8H 03H 00H 00H

第三个字符为‘\0’,所以函数认为只有两个字符。

楼主要的长度计算Length=sizeof(card)/sizeof(struct student);

回答(2):

strlen() 不能对结构求长度吧 会报参数比匹配错误的 用sizeof()

回答(3):

结构体数组的长度计算方法和普通数组相同。
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:
int data[4],length;
length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length of data[4]=%d", length ); //输出length of data[4]=4

回答(4):

编译不通过啊 i=strlen(card);
这一步有问题的吧 你自己运行通过了?

回答(5):

sizeof