私は C を学んでいて、オンラインで読んだものについて混乱しています。
http://www.cs.bu.edu/teaching/c/stack/array/で
私は読むことができました:
空と充足を決定する関数を見てみましょう。これらの関数はスタックを変更しないため、参照によってスタックを渡す必要はありません。したがって、次のようにプロトタイプを作成できます。
int StackIsEmpty(stackT stack); int StackIsFull(stackT stack);
ただし、一部のスタック関数はポインターを使用し (たとえば、StackInit() などで必要)、一部は使用しません。常にスタックを参照によって (ポインターを使用して) 渡すだけの方が一貫性があります。
(stackT とは何かのコードは示していません。これは単なる動的配列です)
私の(おそらく限定的な)理解からすると、値渡しの欠点は、データが関数のスタックメモリに複製されることです。stackT は大きい可能性があるため、ポインターではなく値で渡すと時間がかかります。
私はそれを正しく理解していますか、それとも基本的なことはまだ明確ではありませんか?