変数のスコープとは何ですか
変数のスコープは、変数の有効性の範囲を指します。これは、ユーザー定義変数が使用できるコード範囲であり、変数の場所と密接に関連しています。変数の定義。
スコープ
は、変数を空間の観点から説明したもので、スコープの違いに応じて、変数はローカル変数とグローバル変数に分けられます。
1. ローカル変数
ローカル変数は、関数 (またはコード ブロック) 内で定義された変数であり、内部変数、ローカル A 変数とも呼ばれます。は、それが定義されている関数 (またはコード ブロック) 内でのみアクセスおよび使用でき、他の関数では使用できません。
ローカル変数のスコープは、それが記述されているコード ブロック (記述の先頭からコード ブロックの終わりまで) に限定されます。関数を終了した後にそのような変数を使用することは不正です。 。
例:
int f1(int a) { int b,c; …… }a,b,c作用域 int f2(int x) { int y,z; }x,y,z作用域 main() { int m,n; }
説明: a は仮パラメータ、b、c は一般変数、f1 の範囲内では、a、b、c が有効、または a、b、c変数 スコープは f1 に限定されます。同様に、x、y、z の範囲は f2 に制限され、m、n の範囲は main 関数に制限されます。
同じ名前の変数は同じスコープ内では許可されないことに注意してください。
2. グローバル変数
グローバル変数は、グローバル環境で宣言された変数であり、その範囲は定義点からプログラム終了までです。ファイル。プログラムの実行全体を通じてストレージ ユニットを占有します。
グローバル変数は関数内のグローバル変数の値を変更し、他の関数で共有できます。これは関数間でデータを転送することと同じです。
例:
int a,b; void f1() { …… } float x,y; int fz() { …… } main() { …… }
説明: a、b、x、y はすべて関数の外部で定義された外部変数であり、すべてグローバル変数です。ただし、関数 f1 の後に x と y が定義されており、f1 には x と y の記述がないため、f1 では無効になります。 a、bはソースプログラムの先頭で定義されているため、f1、f2、mainでは説明なしで使用できます。
コード例:
立方体の長さ、幅、高さ l、w、h を入力します。 3 つの面 x*y、x*z、y*z の体積と面積を求めます。
#include <stdio.h> int s1,s2,s3;//全局变量 int vs( int a,int b,int c) { int v;//局部变量 v=a*b*c; s1=a*b; s2=b*c; s3=a*c; return v; } main() { int v,l,w,h;//局部变量 printf("\n分别输入长度l、宽度w和高度h:\n"); scanf("%d%d%d",&l,&w,&h); v=vs(l,w,h); printf("面积1为:%d,面积2为:%d,面积3为:%d\n",s1,s2,s3); printf("体积为:%d",v); }
出力:
以上が変数のスコープとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









typedef struct は、構造体の使用を簡素化するために構造体型のエイリアスを作成するために C 言語で使用されます。構造体の別名を指定することで、新しいデータ型を既存の構造体に別名付けします。利点としては、可読性の向上、コードの再利用、型チェックなどが挙げられます。注: エイリアスを使用する前に構造体を定義する必要があります。エイリアスはプログラム内で一意であり、宣言されているスコープ内でのみ有効である必要があります。

Java における変数の期待値の例外は、変数の初期化、null 値の使用、およびローカル変数のスコープの認識によって解決できます。

JavaScript クロージャーの利点には、変数スコープの維持、モジュール化コードの有効化、遅延実行、およびイベント処理が含まれますが、欠点としては、メモリ リーク、複雑さの増加、パフォーマンスのオーバーヘッド、およびスコープ チェーンの影響が挙げられます。

C++ の #include プリプロセッサ ディレクティブは、外部ソース ファイルの内容を現在のソース ファイルに挿入し、その内容を現在のソース ファイル内の対応する場所にコピーします。主に、コード内で必要な宣言を含むヘッダー ファイルをインクルードするために使用されます。たとえば、標準入出力関数を組み込むための #include <iostream> などです。

C++ スマート ポインターのライフ サイクル: 作成: スマート ポインターは、メモリが割り当てられるときに作成されます。所有権の譲渡: 移動操作を通じて所有権を譲渡します。リリース: スマート ポインターがスコープ外に出るか、明示的に解放されると、メモリが解放されます。オブジェクトの破壊: ポイントされたオブジェクトが破壊されると、スマート ポインターは無効なポインターになります。

できる。 C++ では、ネストされた関数の定義と呼び出しが可能です。外部関数は組み込み関数を定義でき、内部関数はスコープ内で直接呼び出すことができます。ネストされた関数により、カプセル化、再利用性、スコープ制御が強化されます。ただし、内部関数は外部関数のローカル変数に直接アクセスすることはできず、戻り値の型は外部関数の宣言と一致している必要があります。内部関数は自己再帰的ではありません。

JavaScript では、this のポインティング タイプには、1. グローバル オブジェクト、2. 関数呼び出し、4. イベント ハンドラー、5. アロー関数 (this の外側の継承) が含まれます。さらに、bind()、call()、および apply() メソッドを使用して、これが何を指すかを明示的に設定できます。

Vue では、let と var の間で変数を宣言するときのスコープに違いがあります。 スコープ: var にはグローバル スコープがあり、let にはブロック レベルのスコープがあります。ブロックレベルのスコープ: var はブロックレベルのスコープを作成しません。let はブロックレベルのスコープを作成します。再宣言: var は同じスコープ内の変数の再宣言を許可しますが、let は許可しません。
