typedef struct{}stu[50]; 和 struct {}stu[50]; 的区别?? |
表述1:
typedef struct STU
{
char name[20];
char stuNo[10];
int age;
int score;
}stu[50];
int main()
{
printf("%d/n", sizeof(STU) );
printf("%d/n", sizeof(stu[0]) ); //错误!
return 0;
}
表述2:
struct STU
{
char name[20];
char stuNo[10];
int age;
int score;
}stu[50];
int main()
{
printf("%d/n", sizeof(STU) );
printf("%d/n", sizeof(stu[0]) ); //可以
return 0;
}
=====================================
请问:
为什么 用表述1的方法
typedef struct{}stu[];
就不能 用 stu[0] 这样 使用 stu 了??
等待问题的解决。。。
=====================================================================
答疑:
1. typedef struct{}stu[50];是將含有50個struct{}元素的數組定義成stu,這時的stu是一個類型,即數組類型,可以用它來定義新的變量。如
stu NewStruct;
這時NewStruct是一個數組,可以訪問NewStruct[0]...
2. struct{}stu[50]是定義一個結構體,並定義這樣的一個數組stu[50],這時是變量,而不是類型。