可能重复:
C 编程语言中数组的大小?
在我的主要功能中,我有以下代码:
struct student s1 = {"zack",0,0,82};
struct student s2 = {"bob",0,0,80};
struct student s3 = {"joe",0,0,97};
struct student s4 = {"bill",0,0,100};
struct student c[] = {s1,s2,s3,s4};
printf("%d\n\n", arrayLengths(c));
printf("%d\n\n", sizeof(c)/sizeof(c[0]));
其中arrayLength定义为:
int arrayLengths(struct student g[]) {
return sizeof(g)/sizeof(g[0]);
}
尽管我得到了两个不同的结果,但使用重复的代码。我的控制台输出是:
0
4
是什么赋予了?为什么会这样,我怎样才能把它放在它自己的功能中?