ホームページ  >  記事  >  バックエンド開発  >  変数のスコープとは何ですか

変数のスコープとは何ですか

青灯夜游
青灯夜游オリジナル
2019-03-04 11:33:0231155ブラウズ

変数のスコープとは何ですか

変数のスコープは、変数の有効性の範囲を指します。これは、ユーザー定義変数が使用できるコード範囲であり、変数の場所と密接に関連しています。変数の定義。

スコープは、変数を空間の観点から説明したもので、スコープの違いに応じて、変数はローカル変数とグローバル変数に分けられます。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。