Quy tắc phạm vi liên quan các yếu tố:
- Khả năng truy cập biến.
- Thời gian tồn tại biến.
- Ranh giới sử dụng biến.
Quy tắc phạm vi khối lệnh:
- Khối lệnh bao bởi ngoặc nhọn chứa tập câu lệnh.
- Biến khai báo trong khối chỉ truy cập và dùng được trong khối đó, không tồn tại bên ngoài.
Ví dụ 1
Chương trình C quy tắc phạm vi khối lệnh:
#include <stdio.h>
main() {
{
int i = 1;
printf("%d", i);
}
{
int j = 2;
printf("%d", j);
}
}
Kết quả
1 2
Dù biến khai báo lại trong khối riêng với cùng tên, chúng được coi khác nhau.
Ví dụ 2
#include <stdio.h>
main() {
{
int i = 1;
printf("%d", i);
}
{
int i = 2;
printf("%d", i);
}
}
Kết quả
1 2
Ví dụ 3
Khai báo lại biến trong khối bên trong che khuất biến khối ngoài khi thực thi khối trong.
#include <stdio.h>
main() {
int i = 1;
{
int i = 2;
printf("%d", i);
}
}
Kết quả
2
Ví dụ 4
Biến khai báo ngoài khối bên trong truy cập được khối lồng, nếu không khai báo lại trong khối trong.
#include <stdio.h>
main() {
int i = 1;
{
int j = 2;
printf("%d", j);
printf("%d", i);
}
}
Kết quả
2 1