问题
问答题 简答题
结构体数据作为参数在函数间传递有哪几种方式?请指出它们的异同点。
答案
参考答案:
结构体作为参数在函数之间进行传递主要有下 * * 种方式:
复制传递方式:把调用函数中结构体实参的值复制给被调用函数的形参构体。
地址传递方式:将调用函数中实参结构体的地址传递给被调用函数形参的结构体指针。
引用方式:被调用函数的形参应该说明为引用结构体变量形式。实际上,它是为实参结构化起一个别名。
另外,还可以通过全局变量的方式在函数间进行数据传递,但这种方式不好,增加函数之间的耦合性。
地址传递方式要比复制方式效率高。结构体复制传递方式需要对实参做一个备份,它把一个结构体变量作为参数传递,但要将结构体全部成员值一个一个传递,费时间又费空间,开销大。如果结构体的成员较多,则程序运行效率会大大降低,而采用地址传递方式将结构体变量的地址作为函数参数比较好,能提高运行效率。复制传递方式不影响调用函数实参的数值,而地址传递方式有可能影响实参的数值。