違いは何ですか誰か教えてください
int *p[n];
と
int (*p)[n];
数字はどこn
ですか?
最初のケースがポインターの配列を意味することは知っていますが、2 番目の宣言が何を意味するのか知りたいです。
int * p[10]
p
は、10 個のポインターの配列として定義されint
ます。
int (*p)[10]
p
10 個の int の配列へのポインターを定義します。したがって、次のように言えます。
int a[10];
int (*p)[10] = &a;
ええ、C の宣言は非常に紛らわしいです。この記事は、それらを解析する方法の良いガイドのようです。http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations 2 番目のケースは、サイズ n の配列へのポインタのようです。