我正在学习 C 并且对我在网上阅读的内容感到困惑。
在http://www.cs.bu.edu/teaching/c/stack/array/
我可以阅读:
让我们看一下决定空和满的功能。现在,没有必要通过引用这些函数来传递堆栈,因为它们不会更改堆栈。因此,我们可以将它们原型化为:
int StackIsEmpty(stackT stack); int StackIsFull(stackT stack);
然而,有些堆栈函数会使用指针(例如,我们需要它们用于 StackInit() 等),而有些则不会。始终通过引用(使用指针)传递堆栈更加一致
(我没有展示 stackT 的代码,它只是一个动态数组)
根据我(可能是有限的)理解,按值传递的缺点是数据在函数的堆栈内存中重复。由于 stackT 可能很大,因此按值而不是指针传递会很耗时。
我是正确的还是我仍然不清楚基础知识?