一个指针变量用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。有了结构体指针变量,就能方便地访问结构体变量的各个成员。下面通过例子来说明结构体指针变量的具体说明和使用方法。图7.6程序运行结果说明:程序定义了一个结构stu,定义了stu 类型结构体变量boy1,并初始化赋值,还定义了一个指向stu 类型结构的指针变量pstu。......
2023-10-21
结构体变量的成员项、结构体变量和结构体指针都可以作为函数的参数来应用。
1.结构体变量的成员作为函数参数
由于结构体变量的成员存放的是基本数据类型的数据,这种情况同普通变量作为函数参数一样,是值传递方式。函数调用时,需要注意实参与形参的数据类型要保持一致。
2.结构体变量作为函数参数
结构体变量作实参时,采取的是值传递方式,将结构体变量所占的内存单元内容全部顺序传递给形参。形参必须是同类型的结构体变量。在函数调用期间形参也要占用内存单元,这种传递方式在空间和时间上的开销较大,程序执行效率较低。因此,这种方式较少使用。
3.结构体指针或结构体数组名作为函数参数
结构体指针或结构体数组名作为函数参数与普通指针或数组名作为函数参数类似,实现的是地址传递。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。
【例7.7】计算一组学生的平均成绩和不及格人数,用结构体指针变量作函数参数编程。程序如下:(www.chuimin.cn)
程序运行结果如图7.8 所示。
图7.8 程序运行结果
说明:程序中定义了函数ave,其形参为结构体指针变量ps。boy 被定义为外部结构体数组,在整个源程序中有效。在主函数main 中定义说明了结构体指针变量ps,并把boy 的首地址赋予ps,使ps 指向boy 数组。然后以ps 作实参调用函数ave。在函数ave 中计算平均成绩,统计不及格人数,并输出结果。
由于全部采用指针变量作运算和处理,速度快,程序效率更高。
有关C语言程序设计实用教程的文章
一个指针变量用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。有了结构体指针变量,就能方便地访问结构体变量的各个成员。下面通过例子来说明结构体指针变量的具体说明和使用方法。图7.6程序运行结果说明:程序定义了一个结构stu,定义了stu 类型结构体变量boy1,并初始化赋值,还定义了一个指向stu 类型结构的指针变量pstu。......
2023-10-21
在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2023-10-21
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
但是允许在一个函数的定义中出现对另一个函数的调用,即函数的嵌套调用。图5.9函数嵌套调用与子程序嵌套类似,是在执行主函数main()中调用函数a()的语句时,转去执行函数a();在函数a()中调用函数b()时,转去执行函数b();在函数b()执行完毕,返回函数a()的继续执行;函数a()执行完毕,返回主函数main()。函数嵌套调用举例。图5.11程序运行结果统计一批数据中大于平均值的数据总数。图5.12程序运行结果......
2023-10-21
在一个C 程序中,有且只能有一个名为main 的函数,该函数称为主函数。程序执行始终是始于主函数,结束于主函数。C 程序中的每个语句都是以分号(;)作为语句结束符的。......
2023-10-21
首先数组元素可以作为实参,其用法与变量完全相同。图5.5程序运行结果说明:用数组名作函数参数,应该在主调函数和被调用函数分别定义数组,例中array 是形参数组名,score 是实参数组名,分别在其所在函数中定义,不能只在一方定义。图5.8程序运行结果用数组名作为函数参数时应注意以下几点:形参数组和实参数组的类型必须一致。......
2023-10-21
用户自己定义的结构体类型,与系统定义的标准类型一样,是可以用来定义结构体类型的变量。这种方法定义的结构体类型在程序后面不可使用,因为缺少完整的结构体类型名。......
2023-10-21
相关推荐