7-4结构体变量与函数 ◇结构体变量作为函数参数 结构体变量作为函数参数时,直接将实参结构体变量的 各成员的值全部传递给形参。 ◇实参与形参型必须完全一致。 例L7-6 用ist(实现结构体数组变量各元素的输出 从上例可见:作为参数这一点上,结构体变量与普通变 样,是一种值传递
7-4 结构体变量与函数 结构体变量作为函数参数 结构体变量作为函数参数时,直接将实参结构体变量的 各成员的值全部传递给形参。 实参与形参型必须完全一致。 例L7-6 用list()实现结构体数组变量各元素的输出。 从上例可见:作为参数这一点上,结构体变量与普通变 量一样,是一种值传递
◇返回结构体类型值的函数 ◇函数可以返回一种类型的值,当然也包括结构体类型。 例L7-7用一函数实现结构体各元素值的输入。 注意 ◇在函数中输入结构体元素数据时,不要用 scant0), 否则,可能无法完成数据的正常输入。 ◇在函数中输入数值型结构体元素数据时,一般可用字 串先接收,再用转换函数转换成相应类型: atol(函数的功能:将字符串转换为长整型 atoi0函数的功能:将字符串转换为整型。 atof(函数的功能:将字符串转换为浮点型 例L7-8建立一简单学生信息库,程序提供两个功能: 输入E或e,输人记录;输入L或1,显示学生记录
返回结构体类型值的函数 函数可以返回一种类型的值,当然也包括结构体类型。 例L7-7 用一函数实现结构体各元素值的输入。 注意: 在函数中输入结构体元素数据时,不要用scanf(), 否则,可能无法完成数据的正常输入。 在函数中输入数值型结构体元素数据时,一般可用字 符串先接收,再用转换函数转换成相应类型: ➢atol()函数的功能:将字符串转换为长整型。 ➢atoi()函数的功能:将字符串转换为整型。 ➢atof()函数的功能:将字符串转换为浮点型。 例L7-8 建立一简单学生信息库,程序提供两个功能: 输入E或e,输入记录;输入L或l,显示学生记录
7-5结构体指针变量 ◇指向结构体变量的指针 ◇指向结构体变量的指针是:指向结构体变量的首地 址的指针 ◇如果定义了一个 struct person类型,则可用下 面的形式定义一个指向该类型的指针变量: struct person“p 例L7-9用指向结构体变量的指针输出结构体变量的 各成员值
7-5 结构体指针变量 指向结构体变量的指针 指向结构体变量的指针是:指向结构体变量的首地 址的指针。 如果定义了一个struct person 类型,则可用下 面的形式定义一个指向该类型的指针变量: struct person *p 例L7-9 用指向结构体变量的指针输出结构体变量的 各成员值
汪意: ◆P只能指向结构体变量,而不能直接指向结构体变 量的成员。 P=& student是对的,但p=& student. name是错的。 ◇因为用(*p)来引用结构体变量不直观、方便,c语 中还可用以下方式表达: p-name 等价于(*p)name ◇因为“2与“->的优先级最高,所以 p->num+1相当于(p->num)+1 p>num++相当于(p→>num)+
P只能指向结构体变量,而不能直接指向结构体变 量的成员。 P=&student 是对的,但p=&student.name是错的。 因为用(*p)来引用结构体变量不直观、方便,C语 言中还可用以下方式表达: p->name 等价于(*p).name 因为“ . ”与“->”的优先级最高,所以 p->num+1 相当于 (p->num)+1 p->num++ 相当于 (p->num)++ 注意: