これは私のコードです:なぜm [1] - m [0]は3を返します。ここで、mは3x3の行列ですか?
int m[][3] = {
{ 0 , 1 , 2 },
{ 10, 11, 12 },
{ 20, 21, 22 }
};
printf("%d %d\n", m[1] - m[0], m[1][0] - m[0][0]);
そして、なぜ
m[1] - m[0]
リターン3
はいますか?私はなぜ2番目の式が10
を返すのか知っていますが、1 stという文字は私にとって論理的ではありません。あなたのコードで
'm [1]'は '&m [1] [0]'であり、以下同様です。 – immibis
技術的に、 'm'は3x3行列ではなく、配列の配列です。 – HelloGoodbye
答えはまだありませんが、 'm [0]'と 'm [1]'は*配列*(ポインタではありません)です。配列値が '-'演算子のオペランドとして使用されたときに、それぞれの配列の最初の要素を指すポインタ値が生成されます。 –