関数パラメーターの構文を使用しないことをお勧めします。[]
使用を支持する 1 つの議論は[]
、自己文書化された方法で、ポインターが複数のものを指すことが期待されることを意味するということです。例えば:
void swap(int *x, int *y)
double average(int vals[], int n)
しかし、なぜではchar *
なく、常に文字列に使用されるのchar []
ですか? 私はむしろ一貫性を保ち、常に使用したいと思います*
。
一部の人々const
は、値渡しパラメータを含め、できる限りのことを好みます。を使用する場合の構文[]
(C99 でのみ使用可能) は直感的ではなく、おそらくあまり知られていません。
const char *const *const words
対。const char *const words[const]
const
いずれにせよ、その決勝はやり過ぎだと思いますが。
さらに、配列が減衰する方法は完全に直感的ではありません。特に、再帰的に適用されません(char words[][]
動作しません)。特に、より間接的にスローし始めると、[]
構文が混乱を招くだけです。IMO は、配列が引数として渡されるふりをするよりも、常にポインター構文を使用することをお勧めします。
詳細: http://c-faq.com/~scs/cgi-bin/faqcat.cgi?sec=aryptr#aryptrparam .