首页 百科知识 结构体指针可以作为函数参数吗

结构体指针可以作为函数参数吗

时间:2024-10-17 百科知识 版权反馈
【摘要】:由于结构可以整体赋值,所以可以将结构作为值参数传递给函数,也可以定义返回结构值的函数。如果函数f 有一个结构形式参数r,在用结构变量s 作为实参调用时,s 的值将首先赋给r,而后进入函数内部的处理。作为传值的结构参数具有清晰的语义,是一种很常用的方式。采用指针的另一优点是可以避免复制整个结构。

6.5 函数与结构

由于结构可以整体赋值,所以可以将结构作为值参数传递给函数,也可以定义返回结构值的函数。这样,要用函数处理存储在结构中的数据,我们至少有三种不同方法:

1.个别地将结构成员的值传递给函数处理。

2.将整个结构作为参数值传递给函数,一般将这种参数称做结构参数。

3.将结构的地址传给函数,也就是说传递指向结构的指针值,这称为结构指针参数。

后两种方式都是把结构作为整体来看待和处理,但正如针对其他参数的值传递和指针传递一样,这两种参数的作用方式和效果不同。

如果函数f 有一个结构形式参数r,在用结构变量s 作为实参调用时(假定s 的类型匹配),s 的值将首先赋给r,而后进入函数内部的处理。无论在函数f 内部对r 做什么操作,都不会改变实际参数s。作为传值的结构参数具有清晰的语义,是一种很常用的方式。

在另一方面,如果函数g有一个结构指针参数p,调用g时将s 的地址传给p(假定类型匹配),函数体里就可以通过p对s做任何操作,包括赋值、修改其成员等。采用指针的另一优点是可以避免复制整个结构。如果被处理的结构很大,多次复制将耗费很多时间,也可以考虑用指针方式传递。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈