在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2025-09-30
结构体变量的成员项、结构体变量和结构体指针都可以作为函数的参数来应用。
1.结构体变量的成员作为函数参数
由于结构体变量的成员存放的是基本数据类型的数据,这种情况同普通变量作为函数参数一样,是值传递方式。函数调用时,需要注意实参与形参的数据类型要保持一致。
2.结构体变量作为函数参数
结构体变量作实参时,采取的是值传递方式,将结构体变量所占的内存单元内容全部顺序传递给形参。形参必须是同类型的结构体变量。在函数调用期间形参也要占用内存单元,这种传递方式在空间和时间上的开销较大,程序执行效率较低。因此,这种方式较少使用。
3.结构体指针或结构体数组名作为函数参数
结构体指针或结构体数组名作为函数参数与普通指针或数组名作为函数参数类似,实现的是地址传递。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。
【例7.7】计算一组学生的平均成绩和不及格人数,用结构体指针变量作函数参数编程。程序如下:(https://www.chuimin.cn)

程序运行结果如图7.8 所示。

图7.8 程序运行结果
说明:程序中定义了函数ave,其形参为结构体指针变量ps。boy 被定义为外部结构体数组,在整个源程序中有效。在主函数main 中定义说明了结构体指针变量ps,并把boy 的首地址赋予ps,使ps 指向boy 数组。然后以ps 作实参调用函数ave。在函数ave 中计算平均成绩,统计不及格人数,并输出结果。
由于全部采用指针变量作运算和处理,速度快,程序效率更高。
相关文章
在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2025-09-30
但是允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。图5.9函数嵌套调用与子程序嵌套类似,是在执行主函数main()中调用函数a()的语句时,转去执行函数a();在函数a()中调用函数b()时,转去执行函数b();在函数b()执行完毕,返回函数a()的继续执行;函数a()执行完毕,返回主函数main()。函数嵌套调用举例。图5.11程序运行结果统计一批数据中大于平均值的数据总数。图5.12程序运行结果......
2025-09-30
在一个C 程序中,有且只能有一个名为main 的函数,该函数称为主函数。程序执行始终是始于主函数,结束于主函数。C 程序中的每个语句都是以分号(;)作为语句结束符的。......
2025-09-30
首先数组元素可以作为实参,其用法与变量完全相同。图5.5程序运行结果说明:用数组名作函数参数,应该在主调函数和被调用函数分别定义数组,例中array 是形参数组名,score 是实参数组名,分别在其所在函数中定义,不能只在一方定义。图5.8程序运行结果用数组名作为函数参数时应注意以下几点:形参数组和实参数组的类型必须一致。......
2025-09-30
图4.18程序运行结果设有3 个学生的4 门课成绩,求每个学生4 门课程的总评成绩、3 个学生每门课程的平均成绩。图4.19程序运行结果挑战节目主持人。图4.20程序运行结果联合国排名是以国家名的英文字母排序,社会上也常以姓氏的汉语拼音字母排序。就这样,用字符数组min 依次与新输入的字符串比较,直到输入字符串为空时为止。图4.21程序运行结果......
2025-09-30
从函数的定义来看,可以分为标准函数和自定义函数两种。不同的编译系统提供的库函数的名称和功能可能会有所区别。从函数的形式看,函数分为无参函数和有参函数两类。有参函数在调用函数时,在主调函数和被调函数之间有数据传递。从函数调用结果分类,函数又可以分为有返回值函数和无返回值函数。......
2025-09-30
程序中的每个“变量灯”的“功率”大小不一,因此它们的作用域就不相同了。这一点表明形参变量只有在函数内才是有效的,这种变量的有效范围称变量的作用域。变量说明的方式不同,其作用域也不同。在内部变量的作用域内,外部变量将被屏蔽而不起作用。外部变量说明的一般格式:外部变量的作用域是从定义位置到本源文件结束。......
2025-09-30
相关推荐