int を渡すと、値で渡されます。
void something(int i)
何らかのタイプの配列を渡すと、参照によって渡されます。
void something(int i[])
また
void something(int *i);
int のような型は値で渡され、配列は参照として渡されます。
最初の質問は、参照によって渡される型が他にあるのかということです。2 番目の質問は、配列の最初のパスと 2 番目
のパスの違いは何ですか?(int i[])
(int *i)
編集:質問を明確にします。配列など、関数に渡すその他の型は、関数内で変更できます。(あなたが説明したように、これは正確には参照渡しではありません)。
void something(int i[])
{
i[0]=5;
}
something(i);
これにより、ローカルだけでなく配列が変更されます。
構造体はどうですか?組合?それらへのポインタも通過しますか?