変数とは

おとこ

Gunnar Svanberg / Iconica /ゲッティイメージズ





変数は、データを保存するコンピューターのメモリ内の場所の名前です。

たくさんの収納ベイ、テーブル、棚、特別な部屋などを備えた非常に大きな倉庫を想像してみてください。これらはすべて、何かを保管できる場所です。倉庫にビールの木箱があるとしましょう。正確にはどこにありますか?



西の壁から 31 フィート 2 フィート、北の壁から 27 フィート 8 フィートの場所に保管されているとは言えません。の プログラミング また、今年支払われた給与の合計が、RAM の 123,476,542,732 から始まる 4 バイトに格納されているとも言いません。

PC内のデータ

コンピューターは、プログラムが実行されるたびに変数を異なる場所に配置します。ただし、プログラムはデータがどこにあるかを正確に認識しています。これを行うには、変数を参照する変数を作成し、実際の場所に関する煩雑な詳細をすべてコンパイラに処理させます。その場所に保存するデータの種類を知ることは、私たちにとってはるかに重要です。



私たちの倉庫では、クレートはドリンク エリアの棚 3 のセクション 5 にある場合があります。 PC では、プログラムは変数がどこにあるかを正確に認識します。

変数は一時的です

それらは必要な間だけ存在し、その後廃棄されます。もう 1 つの例えは、変数は電卓の数字のようなものです。クリアまたは電源オフのボタンを押すとすぐに、表示されている数字が失われます。

変数の大きさ

必要なだけ大きく、それ以上ではありません。変数の最小値は 1 ビットで、最大値は数百万バイトです。現在のプロセッサは、一度に 4 または 8 バイトのチャンクでデータを処理するため (32 ビットおよび 64 ビットの CPU)、変数が大きいほど、読み取りまたは書き込みに時間がかかります。変数のサイズは、その型によって異なります。

変数型とは

現代では プログラミング言語 、変数は型であると宣言されています。



数値は別として、CPU はメモリ内のデータを区別しません。バイトのコレクションとして扱います。最新の CPU (携帯電話の CPU を除く) は、通常、整数演算と浮動小数点演算の両方をハードウェアで処理できます。の コンパイラ 型ごとに異なるマシン コード命令を生成する必要があるため、変数の型を知ることで最適なコードを生成することができます。

変数が保持できるデータの種類

基本はこの4種類です。



    整数(符号付きと符号なしの両方) 1、2、4、または 8 バイトのサイズ。通常は int と呼ばれます。浮動小数点サイズが 8 バイトまでの数値。バイト.これらは 4 または 8 (32 または 64 ビット) で構成され、CPU のレジスタで読み書きされます。文章最大数十億バイトの文字列。 CPU には、メモリ内の大きなバイト ブロックを検索するための特別な命令があります。これは、テキスト操作に非常に便利です。

スクリプト言語でよく使用される一般的な変数型もあります。

    変異体- これはあらゆるタイプを保持できますが、使用が遅くなります。
データ型の例
  • タイプの配列 - キャビネットの引き出しのような 1 次元、郵便局の仕分けボックスのような 2 次元、またはビール箱の山のような 3 次元。コンパイラの限界まで、任意の数の次元が存在する可能性があります。
  • 整数の制限されたサブセットである列挙型。について読む 列挙型とは .
  • 構造体は、複数の変数が 1 つの大きな変数にまとめられた複合変数です。
  • ストリームは、ファイルを管理する方法を提供します。彼らはの形です ストリング .
  • オブジェクト 、構造体に似ていますが、より洗練されたデータ処理を備えています。

変数はどこに保存されますか?

メモリ内ですが、使用方法に応じてさまざまな方法で。



  • グローバルに。プログラムのすべての部分が値にアクセスして変更できます。これは、Basic や Fortran などの古い言語がデータを処理するために使用する方法であり、良いこととは見なされていません。現代の言語では、グローバル ストレージを思いとどまらせる傾向がありますが、それでも可能です。
  • ヒープ上。これは、使用される主な領域の名前です。 C および C++ では、これへのアクセスは ポインター 変数。
  • 上で スタック .スタックは、保存に使用されるメモリのブロックです パラメーター 関数に渡される変数、および関数に対してローカルに存在する変数。

結論

変数は手続き型プログラミングに不可欠ですが、システム プログラミングを行っている場合や少量の RAM で実行する必要があるアプリケーションを作成している場合を除き、基礎となる実装にこだわりすぎないようにすることが重要です。

変数に関するルール:



  1. あなたがラムにきついか持っていない限り 大きな配列 、 続ける 整数 ではなく バイト (8 ビット) または 短い整数 (16 ビット)。特に 32 ビット CPU では、32 ビット未満にアクセスすると余分な遅延ペナルティがあります。
  2. 使用する 浮きます それ以外の ダブルス 精度が必要でない限り。
  3. 本当に必要でない限り、バリアントは避けてください。彼らは遅いです。