结构将相关变量组成了一个集合,以便能够将这些变量作为一个单独的实体引用。如下是一个结构声明的例子:
1. struct dailyTemperatures
2. {
3. float high;
4. float low;
5. int year;
6. int dayOfYear;
7. };
结构中的单个变量叫做成员变量,或者简单地称为变量。跟在关键字struct 后面的名称,是结构的标签。结构标签标识该结构。它可以用来声明类型为该结构的变量:
1. struct dailyTemperatures today;
2.
3. struct dailyTemperatures *todayPtr;
在前面的例子中,today 是一个dailyTemperatures 结构,而todayPtr 是一个指向dailyTemperatures 结构的指针。
点运算符(.)用来通过一个结构变量访问结构中的单个成员。指针运算符(->)用来从一个变量访问结构成员,而该变量是指向结构的一个指针:
1. todayPtr = &today;
2.
3. today.high = 68.0;
4.
5. todayPtr->high = 68.0;
后两条语句完成同样的事情。
结构可以用其他的结构作为成员。前面的例子可以写成如下所示的形式:
1. struct hiLow
2. {
3. float high;
4. float low;
5. };
6.
7. struct dailyTemperatures
8. {
9. struct hiLow tempExtremes;
10. int year;
11. int dayOfYear;
12. };
那么,设置今天的最高温度可以用如下形式表示:
1. struct dailyTemperatures today;
2. today.tempExtremes.high = 68.0;
注意 编译器会很容易地在一个结构中插入补充,从而迫使结构成员按照内存中的一个特定边界来对齐。不要通过计算结构成员从结构开始处的偏移量来访问它们,或者做依赖于结构的二进制布局的任何其他事情。
1. struct dailyTemperatures
2. {
3. float high;
4. float low;
5. int year;
6. int dayOfYear;
7. };
结构中的单个变量叫做成员变量,或者简单地称为变量。跟在关键字struct 后面的名称,是结构的标签。结构标签标识该结构。它可以用来声明类型为该结构的变量:
1. struct dailyTemperatures today;
2.
3. struct dailyTemperatures *todayPtr;
在前面的例子中,today 是一个dailyTemperatures 结构,而todayPtr 是一个指向dailyTemperatures 结构的指针。
点运算符(.)用来通过一个结构变量访问结构中的单个成员。指针运算符(->)用来从一个变量访问结构成员,而该变量是指向结构的一个指针:
1. todayPtr = &today;
2.
3. today.high = 68.0;
4.
5. todayPtr->high = 68.0;
后两条语句完成同样的事情。
结构可以用其他的结构作为成员。前面的例子可以写成如下所示的形式:
1. struct hiLow
2. {
3. float high;
4. float low;
5. };
6.
7. struct dailyTemperatures
8. {
9. struct hiLow tempExtremes;
10. int year;
11. int dayOfYear;
12. };
那么,设置今天的最高温度可以用如下形式表示:
1. struct dailyTemperatures today;
2. today.tempExtremes.high = 68.0;
注意 编译器会很容易地在一个结构中插入补充,从而迫使结构成员按照内存中的一个特定边界来对齐。不要通过计算结构成员从结构开始处的偏移量来访问它们,或者做依赖于结构的二进制布局的任何其他事情。