使用变量与指向变量的指针作为函数的参数

Lov*_*sun 1 c c++ parameters pointers

当函数需要一个指针作为参数(而不是指针引用的变量)时,这仅仅是因为传递给函数的值的大小?

我可以理解有人想要将指针传递给数组或结构,而不是传递整个数组或结构,但这是他们做出这个决定的其他原因吗?例如,需要指向int(4个字节)而不是int(4个字节)本身的指针的函数.

Nig*_*gel 6

如果您希望函数更改参数的值(例如a int),则必须传入指向它的指针.否则,您的功能所做的任何更改都将在副本上进行.

通常,C和C++中的所谓"输出参数"通常是指向函数影响的任何变量的指针.

对于数组,C实际上不允许将大块内存传递给函数,因此我们别无选择,只能传递指针.

(编辑:正如评论中所讨论的,这个答案仅适用于指针.在C++中,也可以使用引用)

  • 小nit:`struct`s可以是相当大的内存块,`struct`s可以是函数参数,因此C允许将大块内存传递给函数.它只是不允许传递数组. (2认同)