【摘要】:在实际编程中,常常要将一个结构体变量的值或一个结构体型数组传递给一个函数。同样遵循有关值传递和地址传递的规则。结构体变量作为函数参数时,形参结构体变量成员值的改变不影响对应的实参结构体变量成员的值。定义三个函数修改结构体中变量的值。void funpr的形参是结构体指针。
在实际编程中,常常要将一个结构体变量的值或一个结构体型数组传递给一个函数。同样遵循有关值传递和地址传递的规则。
(1)结构体变量作为函数参数(实参与形参)时,形参结构体变量成员值的改变不影响对应的实参结构体变量成员的值。
(2)结构体数组或结构体指针变量作为函数参数(实参与形参)时,形参结构体数组元素(或形参结构体指针变量指向的变量)成员值的改变将影响对应的实参结构体数组(或实参结构体指针变量指向的变量)成员的值。
【例10.7】定义三个函数修改结构体中变量的值。
程序代码:
运行结果:(www.xing528.com)
程序讲解:
在程序中定义了三个函数,三个函数的参数不同。
void funvr(struct stud t)的形参为结构体变量。调用函数时,传递的是结构体变量各成员的值,属于值传递,形参参与运算,形参的改变不会传递给实参。
void funar(struct stud t[])的形参是结构体数组。调用函数时,传递的是结构体数组的地址,属于地址传递,实参和形参是统一空间,形参和实参同时改变。
void funpr(struct stud*t)的形参是结构体指针。调用函数时,传递的是结构体变量的地址,属于地址传递。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。