本Head First Cでは、コンピューターは配列の変数名にメモリを割り当てないと述べています。私は混乱しました!これは本当ですか?
しかし、メモリがある場合、この配列に別の配列を割り当てることができないのはなぜですか?
本Head First Cでは、コンピューターは配列の変数名にメモリを割り当てないと述べています。私は混乱しました!これは本当ですか?
しかし、メモリがある場合、この配列に別の配列を割り当てることができないのはなぜですか?
コンピュータ プログラムは、実行したい機能を記述した抽象化です。コンパイラが記述を受け取り、コンピュータが実行できるようにマシン コードに変換します。
比喩:
「2 ブロック歩いて、左折して 1 ブロック歩いて」と言います。その後、お店に行くことができます。「左側に青い建物が見えるまで歩いて、270 度曲がって店が見えるまで歩いてください」とも言えます。どちらの場合も同じことを行いますが、命令 (この比喩ではプログラム) はまったく異なり、文字数や動詞の数が異なります。
C のコンピュータ プログラムも同じです -- 変数の名前は関係ありません -- コンピュータが実際に実行するコードは、変数 "a" を呼び出すか、変数 " aVeryLongVariableName". コンパイラは名前を追跡しますが、最終的な出力は同じになります。
配列に名前を付けるために使用している識別子は、その配列のベースアドレス(最初の要素のアドレス)を実際に保持するポインターです。
したがって、このアドレスを別のポインターに割り当てることができますが、別の配列のベースアドレスに割り当てることは合法ではありません