8.4结构体数据的输入/输出 令输入语句中含字符型变量时,在输入格式说明中‰c 前要空一格,以便字符型变量能得到正确的输入字符 冷程序的输出部分,结构体数组指针变量p先用数组名 per赋初值,其值跟数组的第1个结构体元素的首地址 (&per0])相同。当指针p自加1时,那么指针p就指向 第2个元素的首地址&per],再加1又指向下一个元 素等。 结构体指针只能用来指向结构体数组元素,而不能用 来指向结构体数组元素内的成员。结构指针变量也必 须要先赋值后才能使用。赋值是把结构变量的首地址 赋予该指针变量,不能把结构名赋予该指针变量
8.4 结构体数据的输入/输出 ❖ 输入语句中含字符型变量时,在输入格式说明中%c 前要空一格,以便字符型变量能得到正确的输入字符。 ❖ 程序的输出部分,结构体数组指针变量p先用数组名 per赋初值,其值跟数组的第1个结构体元素的首地址 (&per[0])相同。当指针p自加1时,那么指针p就指向 第2个元素的首地址&per[l],再加1又指向下一个元 素等。 ❖ 结构体指针只能用来指向结构体数组元素,而不能用 来指向结构体数组元素内的成员。结构指针变量也必 须要先赋值后才能使用。赋值是把结构变量的首地址 赋予该指针变量,不能把结构名赋予该指针变量
85结构体变量作函数参数 ◆用结构体的单个成员作为函数参数 用结构体整体作为函数参数 用结构体指针作为函数参数
8.5 结构体变量作函数参数 ❖ 用结构体的单个成员作为函数参数 ❖ 用结构体整体作为函数参数 ❖ 用结构体指针作为函数参数
【例8-6】指向结构体变量的指针作函数参数示例 令# include< stdio.h> struct person i char name[20] char sex, int ager float height; 1; void output(struct person *p) I printf( %-18s%3c%4d%7.1f",p->name, p->sex, p->age,p >height) printf("\n)'1 void maino I struct person *ptr, perB3]=ff Li Ping",M,20, 175), Wang Ling,F119, 1625y, Zhao Hui M,20, 1781 ptr=per for(ptr< per+ 3: ptr++)output(ptr); 1
【例8-6】指向结构体变量的指针作函数参数示例 ❖ #include<stdio.h> struct person { char name[20]; char sex; int age; float height;}; void output(struct person*p) { printf("%-18s%3c%4d%7.1f",p->name,p->sex,p->age,p- >height); printf("\n");} void main() { struct person *ptr,per[3]={{"Li Ping",'M',20,175}, {"Wang Ling",'F',19,162.5}, {"Zhao Hui",'M',20,178}}; ptr=per; for(;ptr<per+3;ptr++) output(ptr);}
程序运行结果为 C: \"E:\C\test\ Debug\test.exe Li Ping M28175.8 Wang Ling F19162.5 Zhao Hui M28178.8 Press any key to continue
程序运行结果为: