c 怎么统计这类型数组元素个数?

biaowen 2007-11-16 02:55:37
//结构
struct student {
int num; //学号
char *name; //姓名
float score1; //数学
float score2; //语文
float score3; //英语
}stu[]={
{1, "士大夫", 78, 69, 33},
{2, "撒的", 30, 54, 63},
{3, "但是", 89, 45, 34},
{12, "按时", 15, 76, 86},
{5, "额外", 76, 35, 86},
{6, "十是", 90, 43, 54},
{7, "似的", 89, 43, 62},
{9, "反对", 89, 43, 62},
{10, "按时", 89, 34, 53}
};

void main() {
int stu_size = sizeof(stu);
printf("%d\n",stu_size);
}

我这样打印出来的不是数组元素,而是252?
为什么呢?应该如何统计,系统有函数吧!
...全文
194 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_石头_ 2007-11-16
  • 打赏
  • 举报
回复
to ls:
呵呵,别灰心,如果这些大虾们不批评你反而对你不好! 明白吗?
csdn5211 2007-11-16
  • 打赏
  • 举报
回复
我晕,好多牛人批判我。我至少看过好几本教导我不要用这种像函数似的宏,要用内联。我错了,我真地错了,我不该说宏的不是,如果我不说就不会有这么多批判我……
thecorr 2007-11-16
  • 打赏
  • 举报
回复
呵呵~~ 这个没什么争论的
用法而已,存在即合理
我啃 2007-11-16
  • 打赏
  • 举报
回复
C++不提倡用宏哦
-------------
哪个说的?
看来BOOST可以扔了~哎,标准库也是,都是宏~
STL也是
飞哥 2007-11-16
  • 打赏
  • 举报
回复
to csdn5211
C++不提倡用宏哦
------------------

呵呵,我看谁把#include ,#pragma #ifdef #else #endif, #if #endif 这些给踢掉
Treazy 2007-11-16
  • 打赏
  • 举报
回复
to csdn5211
C++不提倡用宏哦
------------------
还有很多不提倡的呢,你都遵守了嘛?
更何况我们又不是在讨论这个,哎……
邓XX说过,“不管白猫黑猫,能抓住老鼠的就是好猫”

guanqb 2007-11-16
  • 打赏
  • 举报
回复

...这不是C语言版么
nihonglei 2007-11-16
  • 打赏
  • 举报
回复
你这样打印出来的是整个结构体数组的大小
如果你要求数组成员的数量,你用sizeof(stu)/sizeof(stu[0])就OK啦!
csdn5211 2007-11-16
  • 打赏
  • 举报
回复
楼主没明白sizeof(),这个东西是算字节的。

to Treazy:
C++不提倡用宏哦,呵呵。
Treazy 2007-11-16
  • 打赏
  • 举报
回复
#define size(x) (sizeof(x)/sizeof(x[0]))

int stu_size = size(stu);
qzy6 2007-11-16
  • 打赏
  • 举报
回复
int stu_size = sizeof(stu)/sizeof(struct student);

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧