标签:
例14.2
对比向函数传递结构体数组名和向函数传递结构体变量名的区别。
1 #include<stdio.h> 2 3 typedef struct 4 { 5 int num; 6 double mark; 7 }REC; 8 9 void sub1(REC x) 10 { 11 x.num = 23; 12 x.mark = 81.5; 13 } 14 15 void sub2(REC y[]) 16 { 17 y[0].num = 12; 18 y[0].mark = 77.5; 19 } 20 21 main() 22 { 23 REC a = { 16,90.0 }, b[] = { 16,90.0 }; 24 sub1(a); 25 printf("A)%d,%5.1lf\n", a.num, a.mark); 26 sub2(b); 27 printf("B)%d,%5.1lf\n", b[0].num, b[0].mark); 28 }
输出结果:
A)16, 90.0
B)12, 77.5
请按任意键继续. . .
例14.3
通过函数返回结构体类型的值。
1 #include<stdio.h> 2 3 typedef struct 4 { 5 int a; 6 char b; 7 }ST; 8 9 ST fun(ST x) /* 函数的返回值类型是结构体类型ST */ 10 { 11 x.a = 99; 12 x.b = ‘S‘; 13 return x; 14 } 15 16 main() 17 { 18 ST y; 19 y.a = 0; 20 y.b = ‘A‘; 21 printf("y.a=%d,y.b=%c\n", y.a, y.b); 22 y = fun(y); 23 printf("y.a=%d,y.b=%c\n", y.a, y.b); 24 }
输出结果:
y.a=0,y.b=A
y.a=99,y.b=S
请按任意键继续. . .
例14.4
通过函数的返回值返回指向结构体变量的指针。
1 #include<stdio.h> 2 3 typedef struct 4 { 5 int a; 6 char b; 7 }ST; 8 9 ST * fun(ST x) /* 函数的返回值类型是ST *类型 */ 10 { 11 ST * px; 12 x.a = 100; 13 x.b = ‘C‘; 14 px = &x; 15 return px; 16 } 17 18 main() 19 { 20 ST y, *p; 21 y.a = 999; 22 y.b = ‘X‘; 23 printf("y.a=%d y.b=%c\n", y.a, y.b); 24 p = fun(y); 25 printf("(*p ).a=%d (* p).b=%c\n", (*p).a, (*p).b); 26 }
输出结果:
y.a=999 y.b=X
(*p ).a=100 (* p).b=C
请按任意键继续. . .
123
全国计算机等级考试二级教程-C语言程序设计_第14章_结构体、共用体和用户定义类型
标签:
原文地址:http://www.cnblogs.com/denggelin/p/5437341.html