プログラミングにおけるスコープについて
概要
スコープとは、ざっくりいうと変数の適用範囲のことである。
以下に例を示す。
int main(void){
int a = 0;
}上記の変数aはmain関数のスコープにあるという。
ifを使用した場合は以下のとおりである。
int main(void){
int a = 0;//これはmain関数のスコープ
if(a == 0){
int b = 1;//これはifのスコープ
}
else{
printf("b = %d",b);//これはelseのスコープ
}
printf("b = %d",b);
}if内のスコープで宣言された変数bは、else句内では使用できない。
反対に、else句内で宣言された変数はif内で使用できない。
関数の場合でもこれは当てはまる。
以下にコード例を示す。
int sum(int a, int b){
return a + b;
}
int main(void){
int a = 2;
int b = 3;
printf("%d + %d = %d", a1, b1, sum(a, a));
}この例ではsum関数とmain関数で同じ変数名を使用しているが、スコープが違うのでエラーは発生しない。
このスコープを厳格にしている言語にRustが存在する。