Lov*_*sun 1 c c++ parameters pointers
当函数需要一个指针作为参数(而不是指针引用的变量)时,这仅仅是因为传递给函数的值的大小?
我可以理解有人想要将指针传递给数组或结构,而不是传递整个数组或结构,但这是他们做出这个决定的其他原因吗?例如,需要指向int
(4个字节)而不是int
(4个字节)本身的指针的函数.
如果您希望函数更改参数的值(例如a int
),则必须传入指向它的指针.否则,您的功能所做的任何更改都将在副本上进行.
通常,C和C++中的所谓"输出参数"通常是指向函数影响的任何变量的指针.
对于数组,C实际上不允许将大块内存传递给函数,因此我们别无选择,只能传递指针.
(编辑:正如评论中所讨论的,这个答案仅适用于指针.在C++中,也可以使用引用)