我想问一下C语言中的结构声明。例如,
struct Person
{
char name[50];
int citNo;
float salary;
} prsn[20];
[20]
的作用是什么?这是什么意思?是否将名称限制为 20 个(从 50 个)或将 prsn
从 prsn[1]
限制为 prsn[20]
?
如果我写这样的代码:
struct Person
{
char name[50];
int citNo;
float salary;
};
struct Person prsn[20];
它做同样的事情吗?
最佳答案
上面的两段代码是等效的。
在第一个中,您定义 struct Person
并定义prsn
同时作为该结构的 20 个元素的数组。在第二个中,您首先定义结构,然后单独定义数组。
在 C 语言中,数组索引从 0 开始,因此在这两种情况下 prsn
数组包含索引从 0 到 19 的元素。这不会影响 name
的大小member,这是一个 50 元素的数组。你有一个包含 20 struct Person
的数组,每个都包含一个 50 个元素的数组 char
叫name
.
关于使数组大小不受限制,数组必须有一个大小,可以在[
之间明确指定。和]
或通过初始化列表隐式地进行。大小可以是一个变量,但是这样的数组不能在文件范围内定义,并且大小变量必须事先已分配一个值。
关于c - 结构体和结构体成员的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268407/