質問: C言語について
回答: 少々難しい話をすると、それを行っても、a=bにもa==bにもなりません。 あくまでも、a配列の各要素と、b配列の各要素が同じ値になるというだけです。 C言語では、配列のaに対して、aとだけ単体で書くと、配列が置かれているメモリの位置の頭のアドレスになるというルールがあります。 aとbはそれぞれ別の配列なので、別々のアドレスを持ちます。 なので、a==b(aのアドレスとbのアドレスが同じかどうか?)は、「偽(違う)」という結果になります。 また、このアドレス(位置)は、宣言した段階で決められていて固定なので、変えることはできません。 その為、a=b(aの位置をbのいちに変更せよという命令)は、エラーになります。 forが何をやっているかは、教科書のfor文の仕組みを読み直して下さい。 for文は3つの式を持ち、1つ目を最初に一度だけ実行し、 2つ目の値が「真」である間、 for文に続く文を実行し、 3つ目の式を、実行した後、 2つ目の式の判定に戻る ということを繰り返す構文です。 for (int i = 0; i < n; i++) { b[i] = a[i]; } は int i=0; if(!(i