Cには参照がありません(a)、それはC++です。
Cでは、配列は関数に渡されるときにX
へのポインターに減衰するため、1つの方法は次のように使用することです。X[0]
void shuffle (int *pDeck) {
// use pDeck[something]
}
:
int deck[] = {0,1,2,3,4,5,6,7,8,9};
shuffle (deck);
void shuffle (int pDeck[])
前者は配列ではなくポインタを扱っていることを完全に明確にしているので、私は実際にはそのメソッドをバリアントよりも好みます。
これが重要である理由は、それを行うとサイズ情報が失われるためです。そのため、それも渡すことをお勧めします。
void shuffle (int *pDeck, size_t sz) {
// use pDeck[0 thru sz-1]
}
:
int deck[] = {0,1,2,3,4,5,6,7,8,9};
shuffle (deck, sizeof (deck) / sizeof (*deck));
(a):非常に優れた機能ですが。ISOが次のC標準でそれらを検討することを願っています。なぜなら、この言語の初心者が抱える多くの問題がポインターに関係しており、参照によってその複雑さが非常によく隠される可能性があるからです。