-------
struct []
{
…………….
}
struct
:

struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
name
num
sex
age
score
addr
2
2
20
1
4
30

…..
,

struct
{
…………….
}
struct
9.2

struct
{
…………….
}
struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;

struct
{
…………….
}
struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;

:,
:;,

,
()
,1
:
.
9.3

struct
{
…………….
}
struct ={}
struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
};
struct student stu1={112,“Wang Lin”,?M?,19,“200 Beijing Road”};
9.4

struct
{
…………….
}={}
struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
}stu1={112,“Wang Lin”,?M?,19,“200 Beijing Road”};

struct
{
…………….
}={}
struct
{ int num;
char name[20];
char sex;
int age;
char addr[30];
}stu1={112,“Wang Lin”,?M?,19,“200 Beijing Road”};

struct student
{ int num;
char name[20];
char sex;
int age;
};
struct student stu[2];
struct student
{ int num;
char name[20];
char sex;
int age;
}stu[2];
:
struct
{ int num;
char name[20];
char sex;
int age;
}stu[2];
num
name
sex
age
num
name
sex
age
stu[0]
stu[1]
25B
9.5

struct
{ int num;
char name[20];
char sex;
int age;
}stu[ ]={{……},{……},{……}};
[].
struct student
{ int num;
char name[20];
char sex;
int age;
}str[3];
stu[1].age++;
strcpy(stu[0].name,”ZhaoDa”);

struct person
{ char name[20];
int count;
}leader[3]={“Li”,0,“Zhang”,0,”Wang“,0};
main()
{ int i,j; char leader_name[20];
for(i=1;i<=10;i++)
{ scanf("%s",leader_name);
for(j=0;j<3;j++)
if(strcmp(leader_name,leader[j].name)==0)
leader[j].count++;
}
for(i=0;i<3;i++)
printf("%5s:%d\n",leader[i].name,leader[i].count);
}
name count
Li
Zhang
Wang
0
0
0

struct *;
struct student *p;
num
name
sex
age
stu
pstruct student{ int num;
char name[20];
char sex;
int age;
}stu;
struct student *p=&stu;
(*),->,int n;
int *p=&n;
*p=10;? n=10
struct student stu1;
struct student *p=&stu1;
stu1.num=101;? (*p).num=101
9.6

----
----
----

struct data
{ int a,b,c; };
main()
{ void func(struct data);
struct data arg;
arg.a=27; arg.b=3; arg.c=arg.a+arg.b;
printf("arg.a=%d arg.b=%d arg.c=%d\n",arg.a,arg.b,arg.c);
printf("Call Func()....\n");
func(arg);
printf("arg.a=%d arg.b=%d arg.c=%d\n",arg.a,arg.b,arg.c);
}
void func(struct data parm)
{ printf("parm.a=%d parm.b=%d parm.c=%d\n",parm.a,parm.b,parm.c);
printf("Process...\n");
parm.a=18; parm.b=5; parm.c=parm.a*parm.b;
printf("parm.a=%d parm.b=%d parm.c=%d\n",parm.a,parm.b,parm.c);
printf("Return...\n");
}
arga,27b,3
c,30
(main)
(func)
parm
a,27
b,3
c,30
copy
arg
a,
b,3
c,30
(func)
parm
a,18
b,5
c,90
a,27
b,3
c,30
1

struct data
{ int a,b,c; };
main()
{ void func(struct data *parm);
struct data arg;
arg.a=27; arg.b=3; arg.c=arg.a+arg.b;
printf("arg.a=%d arg.b=%d arg.c=%d\n",arg.a,arg.b,arg.c);
printf("Call Func()....\n");
func(&arg);
printf("arg.a=%d arg.b=%d arg.c=%d\n",arg.a,arg.b,arg.c);
}
void func(struct data *parm)
{ printf("parm->a=%d parm->b=%d parm->c=%d\n",parm->a,parm->b,parm->c);
printf("Process...\n");
parm->a=18; parm->b=5; parm->c=parm->a*parm->b;
printf("parm->a=%d parm->b=%d parm->c=%d\n",parm->a,parm->b,parm->c);
printf("Return...\n");
}
arg
a,18
b,5
c,90
(main)
arg
a,27
,3
c,30
ai )
arga,27b,3
c,30
ai )
(func)
parm****
arga,18b,5
c,9
(main)
(f c)
2

,
()
union
{
…………….
}union data
{ int i;
char ch;
float f;
}; f
ch
i
9.8

union data
{ int i;
char ch;
float f;
}a,b;
union data
{ int i;
char ch;
float f;
};
union data a,b,c,*p,d[3];
union
{ int i;
char ch;
float f;
}a,b,c;
f
ch
i
f
ch
i
a b

a.i=1;
a.ch=?a?;
a.f=1.5;
printf(“%d”,a.i); (?)
->,(*).
union data
{ int i;
char ch;
float f;
};
union data a,b,c,*p,d[3];
a.i a.ch a.f
p->i p->ch p->f
(*p).i (*p).ch (*p).f
d[0].i d[0].ch d[0].f
union
{ int i;
char ch;
float f;
}a;
a=1; (?)
union
{ int i;
char ch;
float f;
}a={1,?a?,1.5}; (?)
float x;
union
{ int i; char ch; float f;
}a,b;
a.i=1; a.ch=?a?; a.f=1.5;
b=a; (?)
x=a.f; (?)

01100001 01000001
01000001
01100001
ch[0]
ch[1]
i=60501
ch0=101,ch1=141
ch0=A,ch1=a
main()
{ union int_char
{ int i;
char ch[2];
}x;
x.i=24897;
printf("i=%o\n",x.i);
printf("ch0=%o,ch1=%o\n
ch0=%c,ch1=%c\n",
x.ch[0],x.ch[1],x.ch[0],x.ch[1]);
}

,
struct node
{ char ch[2];
int k;
}a;
union node
{ char ch[2];
int k;
}b;
achk
bch k
,

typedef type name;
typedef int INTEGER;
typedef float REAL;
INTEGER a,b,c;
REAL f1,f2;
int a,b,c;
float f1,f2;
typedef

int i;
int INTEGER;
typedef typedef int INTEGER;
INTEGER i,j;
int a[100];
int ARRAY[100];
typedef int ARRAY[100];
ARRAY a,b,c;
int a[100],b[100],c[100];
char *str;
char *STRING;
typedef char *STRING;
ST ING p,s[10];
char *p;
char *s[10];
int (*p)();
int (*POWER)();
typedef int (*POWER)();
POWER p1,p2;
int (*p1)(),(*p2)();
struct date
{ int month;
int day;
int year;
}d;
struct date
{ int month;
int day;
int year;
}DATE;
typedef struct date
{ int month;
int day;
int year;
}DATE;
DATE birthday,*p;
struct date
{ int month;
int day;
int year;
}birthday,*p;
typedef struct club
{ char name[20];
int size;
int year;
}GROUP;
typedef GROUP *PG;
PG pclub;? GROUP *pclub;? struct club *pclub;
typedef