先看例子:
1#include <stdio.h>
2void main(){
3 typedef struct {
4 int int_field;
5 char char_field;
6 } my_struct;
7 my_struct my_s;
8 my_s.int_field=3; //结构运算符访问结构成员
9 my_struct *s;
10 s=(my_struct *)malloc (sizeof(my_struct));
11 s->int_field=4;
12 s->char_field='a';
13 (*s).int_field=6;
14 }
访问结构体成员的运算符有两种,一种是“.”即结构运算符,另一种是“->”即结构指针运算符。
结构运算符是通过结构变量名访问结构体成员的(例如例子的第8行),而结构指针运算符是通过指向结构的指针访问结构成员的(例如第11及12行)。
还可以用指针和结构运算符来访问结构(如第13行),其中(*s)中的圆括号不可以省去