違いは何ですか
char *array[10];
と
char (*array)[10];
?
私の理解では、
- ケース 1:
array
サイズ 10 の文字配列の配列として宣言されています。[]
よりも優先順位が高いためです*
。
- ケース 2:
array
サイズ 10 の文字配列へのポインターとして宣言されます。- これは、
()
と[]
が同じ優先順位を持ち、左から右に評価されるためです。次に、*
演算子が評価されます。
私の理解は正しいですか?たとえそれが正しいとしても、私は信じられないほど混乱します。誰かが違いをもう少し明確に説明できますか?