Biến là tên được gán cho vùng lưu trữ mà chương trình có thể thao tác. Loại biến xác định kích thước và cách bố trí bộ nhớ của biến
Nó cũng xác định phạm vi giá trị cần được lưu trữ bên trong bộ nhớ đó và bản chất của các hoạt động có thể được áp dụng cho biến đó
Phạm vi biến
Phạm vi của biến chỉ đơn giản là thời gian tồn tại của một biến. Đó là khối mã theo đó một biến có thể áp dụng hoặc tồn tại. Ví dụ
function foo[]{ var x; }
Bạn khai báo biến “x” bên trong hàm “foo. ” Phạm vi của biến đó nằm trong hàm đó, nó không thể được sử dụng bên ngoài hàm đó.
Có ba vị trí mà bạn có thể khai báo biến cho ngôn ngữ lập trình biến.
- Bên trong một chức năng hoặc một khối. Biến cục bộ
- Ngoài tất cả các chức năng. biến toàn cầu
- Trong định nghĩa của các tham số chức năng. thông số chính thức
Biến cục bộ
Biến cục bộ được định nghĩa là một loại biến được khai báo trong khối lập trình hoặc chương trình con. Nó chỉ có thể được sử dụng bên trong chương trình con hoặc khối mã mà nó được khai báo. Biến cục bộ tồn tại cho đến khi khối chức năng được thực thi. Sau đó, nó sẽ tự động bị hủy
Ví dụ về biến cục bộ
public int add[]{ int a =4; int b=5; return a+b; }
Ở đây, 'a' và 'b' là các biến cục bộ
Biến toàn cầu
Biến toàn cục trong chương trình là biến được định nghĩa bên ngoài chương trình con hoặc hàm. Nó có phạm vi toàn cầu có nghĩa là nó giữ giá trị của nó trong suốt vòng đời của chương trình. Do đó, nó có thể được truy cập trong toàn bộ chương trình bởi bất kỳ chức năng nào được xác định trong chương trình, trừ khi nó bị ẩn
Thí dụ
int a =4; int b=5; public int add[]{ return a+b; }
Ở đây, 'a' và 'b' là các biến toàn cục
Biến cục bộ so với biến toàn cầu
Dưới đây là một số khác biệt cơ bản giữa các biến Cục bộ và Toàn cầu
ParameterLocalGlobalScopeIt được khai báo bên trong một hàm. Nó được khai báo bên ngoài chức năng. Giá trị Nếu nó không được khởi tạo, một giá trị rác sẽ được lưu trữ Nếu nó không được khởi tạo, giá trị 0 được lưu trữ như mặc định. Trọn đờiNó được tạo khi chức năng bắt đầu thực thi và mất đi khi chức năng kết thúc. Nó được tạo trước khi chương trình bắt đầu thực thi toàn cầu và bị mất khi chương trình kết thúc. Chia sẻ dữ liệu Không thể chia sẻ dữ liệu vì dữ liệu của biến cục bộ chỉ có thể được truy cập bởi một hàm. Có thể chia sẻ dữ liệu vì nhiều chức năng có thể truy cập cùng một biến toàn cục. Các tham số Việc truyền tham số là bắt buộc đối với các biến cục bộ để truy cập giá trị trong hàm khác Việc truyền tham số là không cần thiết đối với biến toàn cục vì nó hiển thị trong toàn bộ chương trình Sửa đổi giá trị biến Khi giá trị của biến cục bộ được sửa đổi trong một hàm, các thay đổi sẽ không hiển thị trong . Khi giá trị của biến toàn cục được sửa đổi trong một chức năng, các thay đổi sẽ hiển thị trong phần còn lại của chương trình. Các biến byLocal được truy cập có thể được truy cập với sự trợ giúp của các câu lệnh, bên trong một hàm mà chúng được khai báo. Bạn có thể truy cập các biến toàn cục bằng bất kỳ câu lệnh nào trong chương trình. Lưu trữ bộ nhớ Nó được lưu trữ trên ngăn xếp trừ khi được chỉ định. Nó được lưu trữ trên một vị trí cố định do trình biên dịch quyết địnhƯu điểm của việc sử dụng biến Global
- Bạn có thể truy cập biến toàn cục từ tất cả các chức năng hoặc mô-đun trong chương trình
- Bạn chỉ cần khai báo biến toàn cục một lần bên ngoài các mô-đun
- Nó được sử dụng lý tưởng để lưu trữ các “hằng số” vì nó giúp bạn duy trì tính nhất quán
- Biến toàn cầu hữu ích khi nhiều chức năng đang truy cập cùng một dữ liệu
Ưu điểm của việc sử dụng Biến cục bộ
- Việc sử dụng các biến cục bộ đảm bảo rằng các giá trị của các biến sẽ được giữ nguyên trong khi tác vụ đang chạy
- Nếu một số tác vụ thay đổi một biến duy nhất đang chạy đồng thời thì kết quả có thể không đoán trước được. Nhưng việc khai báo nó là biến cục bộ sẽ giải quyết được vấn đề này vì mỗi tác vụ sẽ tạo phiên bản riêng của biến cục bộ
- Bạn có thể đặt cùng tên cho các biến cục bộ trong các hàm khác nhau vì chúng chỉ được nhận dạng bởi hàm mà chúng được khai báo trong đó
- Các biến cục bộ sẽ bị xóa ngay sau khi bất kỳ chức năng nào kết thúc và giải phóng không gian bộ nhớ mà nó chiếm giữ
Nhược điểm của việc sử dụng Biến toàn cục
- Quá nhiều biến được khai báo là toàn cục, sau đó chúng vẫn còn trong bộ nhớ cho đến khi chương trình thực thi xong. Điều này có thể gây ra sự cố Hết bộ nhớ
- Dữ liệu có thể được sửa đổi bởi bất kỳ chức năng. Bất kỳ câu lệnh nào được viết trong chương trình đều có thể thay đổi giá trị của biến toàn cục. Điều này có thể cho kết quả không thể đoán trước trong môi trường đa tác vụ
- Nếu các biến toàn cục bị ngưng do tái cấu trúc mã, bạn sẽ cần thay đổi tất cả các mô-đun nơi chúng được gọi
Nhược điểm của việc sử dụng Biến cục bộ
- Quá trình gỡ lỗi của một biến cục bộ khá phức tạp
- Dữ liệu chung được yêu cầu truyền đi lặp lại vì không thể chia sẻ dữ liệu giữa các mô-đun
- Họ có một phạm vi rất hạn chế
Điều gì hữu ích hơn?
Biến cục bộ và biến toàn cục quan trọng như nhau khi viết chương trình bằng bất kỳ ngôn ngữ nào. Tuy nhiên, một số lượng lớn biến toàn cục có thể chiếm một bộ nhớ lớn. Một thay đổi không mong muốn đối với các biến toàn cục trở nên khó xác định. Do đó, nên tránh khai báo các biến toàn cục không mong muốn