[Powered by Google Translate] JOEマコーミック:だから今我々は、変数の話をするつもりだ。 コンピュータサイエンスの変数は値を格納する方法です。 さて、何をどのように我々はそれを保存する 値があまりにも重要ではありません。 私たちは、言葉である値を持つことができ、その可能性 文字列として格納される。 あるいは、我々は、文字である何かを持っている可能性が 手紙のような。 そして、それはcharとして格納されるでしょう。 我々は次のようになります1または12のような数を、持つことができ 整数型またはint型として格納されます。 そこで、我々は保存することができますフロートのような別のものを持っている 1.01または111.13のようなもの。 これらの値は、常に可変と呼ばれています。 我々は整数でナンバーワンを格納した場合ことを意味 後でプログラムの先頭には、我々はその数を変更することができます 3または7である。 さて、ローカル変数を使用すると、一般的に発生するだろうことです 関数を実行するとき。 それでは、あなたは、main関数内にいるとしましょう​​。 そして、あなたはnumという変数を作成したいと思います。 そして我々はそれに整数を格納します。 だから我々は、int num =の3のような何かを言うことができます。 さて、あなたはそこに行く。 ローカル変数を持っています。 さて、この変数がメインで、後に変更することができます 関数は、numのようなものを言って= 6またはnum = 7。 しかし、あなたの変数内に貼り付けられている その関数のスコープ。 と範囲は、一般的で中括弧で始まる 中括弧とそのメインと両端の先頭 main関数を終了します。 そして、このローカル変数は、ここではこの範囲内で立ち往生している。 だから、それはもはや、別の関数にアクセスすることはできません main関数の外。 そして、かつて主な機能は、その実行を終了し、 返ると、このローカル変数と呼ばれるnumがなくなっています。 だからローカル変数とは対照的に、我々は何かを持っている グローバル変数と呼ばれる。 さて、グローバル変数の先頭で宣言されている プログラムとは、プログラムのどこにアクセスすることができます。 それでは、あなたがの上部にグローバル変数を宣言したとしましょう テストと呼ばれるプログラムです。 さて、この変数がアクセスされる可能性 プログラムのどこインチ あなたのメイン関数または関数でそれにアクセスすることができました その下。 しかし、あなたはこれまでのいずれかのローカル変数を作成しようとした場合 同じ名前が付いているこれらの関数として、 テストでは、競合が発生します。 あなたが使用したい変数を知らないので。 あなたは、グローバルなテストを使用しますか 一番上のプログラムで宣言された? または、ローカル変数のテストをすることに使用するか あなたはこの関数内で作成しようとしている? さて、これは我々はしたくない理由の一つである ただ自由にグローバル変数を使用します。 名前空間が乱雑と呼ばれるものがある。 あなたに意味するものではない場合でも、誤って作成することができます 同じ名前の後に、プログラム内のローカル変数、 グローバル変数として名前。 そして、これは作業中の巨大な問題をもたらすことはありません 小型10、20、30行プログラム。 あなたが何千行ものコードまで持ってたら、ではないでしょう あなたはグローバル変数に格納されているかを正確に覚えています。 ローカルとグローバルの使用を検討するので、一つのこと、 変数は、それらの範囲を考えることです。 さて、スコープは、これらの変数の中で使用できる場所を指す プログラム。 、グローバルスコープと呼ばれるものを持ってグローバル変数はそう それはプログラムのどこにでも使用することができることを意味している。 一度その変数を初期化すると、それはで使用することができます それが主な機能であるかどうか、任意の関数、 ダウン機能10機能は、foo10と呼ばれる。 あなたがそれを使用する場所は問題ではありません。 しかし、ローカル変数は、特定のスコープを持っています。 そして、そのローカル変数のスコープは、によって決定される どこでそれが初期化されます。 さて、範囲は一般的に開口部によって決定されます 変数が宣言された関数の中括弧まで、 その関数の閉じ括弧。 それでは、あなたが主な機能にしているとしましょう​​。 そして、あなたは、変数を作成します。 しかし、今、このメイン関数内で、我々は別の呼び出し 関数foo。 関数fooでは、変数を我々だけで呼び出すことができません。 それがスコープ内にはないので、main関数で作成された。 その変数は、main関数内でのみ有効範囲内にある。 だから我々は、main関数内で、上に、さらにそれを使うことができますが、 しないmain関数から呼び出される関数内。 だから、スタックとヒープのように、グローバル変数は メモリの特定の部分に格納されている。 さて、メモリのこの部分は、そのシステムに依存 あなたが使用している。 グローバル変数は、彼らがしていることを2つの別々のスポットを持っている そのような場合のように初期化されたグローバル変数のために保存され、1 あなたのプログラムの先頭で、int型テスト= 5を宣言した。 そして、他のエリアには、初期化されていないグローバル変数です あなたが今言った場合、int型とプログラムの最初にテスト、 テスト変数を設定しようとしていた 後でプログラム内で。 だから今は、#defineと呼ばれるものについて話をするつもりですが、 これは、定数にシンボリック名を与えるための方法です。 そしてここで我々は計算するC言語のプログラムの例を持っている 円の面積。 とプログラムの先頭に、我々は言う何かをするつもりだ #円周率3.14159を定義します。 技術的にはグローバル変数を作成しません#定義されています。 むしろ、それは、コンパイラのプリプロセッサに指示 とπのすべてのインスタンスを検索して置換 コンパイルする前に、3.14159。 それにもかかわらず、それが宣言するための有用な技術となる プログラム全体で使用するための定数。 さて、面積関数を見て、それはfloatで取り RADと単にそれで円の面積を返します 半径または乗πr、またはπの時間が時間がラジアンラジアン。 #定義すると、重要な役割を果たしているとこれです。 コンパイラは、基本的にはそのパイを交換しますので、 数3.14159を持つシンボル。 そして私たちは何度も繰り返していることを記述する必要はありません。 我々は、円周率の桁以上の数字を使用することにした場合と後になって、してみましょう 3.1415926を言う、私達はちょうどその上に追加できる プログラムは、それを変更する必要はありません、 後でプログラム内で。 これは#defineの良い使用方法です。 私たちは、グローバル変数としてpiを保存したくないので、それ プログラムの後半で変わる可能性があります。 そして、我々はpiが変更されることはありません知っている。 それは一定です。 だから、これはグローバル変数の私たちの話題を締めくくります。 だから、今日私たちは、地元との違いについて話しました グローバル変数は、それらを使用する際に、それらのに応じて スコープ、そしてなぜ意志でグローバル変数を使用しない ためのネーム·スペースの乱雑。 私はジョーマコーミックだ。 そして、これはCS50です。