注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
ポインタの配列?それとも配列へのポインタ? (複雑な変数宣言) よくある勘違いで以下のように配列と... ポインタの配列?それとも配列へのポインタ? (複雑な変数宣言) よくある勘違いで以下のように配列とポインタが組み合わさった場合、変数fooとbarは何を表すのか混乱する場合があります。 char *foo[100]; char (*bar)[100]; この勘違いは演算子の優先順位を理解していない場合に発生します。更にやっかいなことに演算子*が左から右へ結合するのに対し、演算子[]が右から左へ結合するので特に初心者にはよけい判りづらくなります。 C/C++言語において、演算子[]は演算子*より高いので、コンパイラは[]を先に解釈します。 つまり、"char *foo[100]"の場合、この宣言の解釈順は以下の通りです。 宣言のうち、最も優先順位が高いのは[]である。つまり、変数fooは「何か」が100個ある配列である。 宣言から[100]を除外する。 宣言の残りは"char* foo"
2013/10/15 リンク