Tra Cứu

Biến cục bộ là gì? Khai báo biến cục bộ và tính chất của chúng

Biến cục bộ là gì?

A. Biến được khai báo trong chương trình con

B. Biến tự do không cần khai báo

C. Biến được khai báo trong chương trình chính nhưng chỉ được sử dụng cho CTC

D. Biến được khai báo trong CTC nhưng được sử dụng trong chương trình chính

Đáp án đúng: A. Biến được khai báo trong chương trình con

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 cá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 của hàm đang được thực thi. Sau đó, nó sẽ tự động bị phá hủy.

Biến toàn cục và biến cục bộ
Biến toàn cục và biến cục bộ

Biến là gì?

Biến là tên được gán cho một vùng lưu trữ mà chương trình có thể thao tác. Một kiểu 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 của các 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. Nó là khối mã mà theo đó một biến có thể áp dụng hoặc tồn tại.

Bạn khai báo một biến “x” bên trong một hàm “foo.” Phạm vi của biến đó vẫn ở bên trong hàm đó, nó không thể được sử dụng bên ngoài hàm đó.

Có ba nơi mà bạn có thể khai báo ngôn ngữ lập trình biến:

  • Bên trong một hàm hoặc một khối: Các biến cục bộ
  • Bên ngoài tất cả các hàm: Biến toàn cục
  • Trong định nghĩa của tham số hàm: Tham số chính thức

Khai báo biến cục bộ và tính chất của chúng

Biến cục bộ, là các biến được khai báo trong một hàm. Biến đó sẽ chỉ có thể tồn tại và sử dụng bên trong hàm. Biến cục bộ sẽ được cấp phát khi hàm đó được gọi và sẽ được giải phóng khi hàm kết thúc thực thi.

Các biến cục bộ trong các hàm có tên giống nhau nhưng khai báo trong các hàm khác nhau vẫn có thể sử dụng bình thường.
Ví dụ như thế này cho dễ hiểu. Có 2 người tên là Hương nhưng 1 Hương ở nhà A và 1 ở nhà B, thì đó là 2 người hoàn toàn khác nhau. Nhưng nếu có 2 Hương trong cùng 1 nhà A thì sẽ dẫn tới lỗi.

Khai báo biến toàn cục tính chất của chúng

Với biến toàn cục, là biến được khai báo bên ngoài hàm, có thể được truy xuất và sử dụng ở mọi hàm trong chương trình. Biến toàn cục được cấp phát bộ nhớ khi chương trình hoạt động và giải phóng khi chương trình kết thúc.

Các biến toàn cục chỉ có thể sử dụng trong file.c đó, nếu muốn sử dụng trong file.c khác chúng ta phải sử dụng từ khóa extern khi khai báo biến toàn cục

Trong 1 chương trình C, ta có thể khai báo biến toàn cục và biến cục bộ có tên giống nhau. Nhưng khi ở trong hàm, hàm sẽ ưu tiên sử dụng biến cục bộ được khai báo.

Sự khác biệt giữa biến cục bộ và biến toàn cục

  • Biến cục bộ được khai báo bên trong một hàm trong khi biến Toàn cục được khai báo bên ngoài hàm.
  • Biến cục bộ được tạo khi hàm bắt đầu thực thi và bị mất khi hàm kết thúc, mặt khác, biến toàn cục được tạo khi bắt đầu thực thi và bị mất khi chương trình kết thúc.
  • Biến cục bộ không cung cấp chia sẻ dữ liệu trong khi biến Toàn cầu cung cấp chia sẻ dữ liệu.
  • Các biến cục bộ được lưu trữ trên ngăn xếp trong khi biến Toàn cục được lưu trữ trên một vị trí cố định do trình biên dịch quyết định.
  • Truyền tham số là bắt buộc đối với các biến cục bộ trong khi không cần thiết đối với biến toàn cục

Ưu điểm của việc sử dụng các biến toàn cục

  • Bạn có thể truy cập biến toàn cục từ tất cả các hàm hoặc mô-đun trong một chương trình
  • Bạn chỉ yêu cầu khai báo biến toàn cục thời gian duy nhất bên ngoài mô-đun.
  • Nó được sử dụng lý tưởng để lưu trữ “hằng số” vì nó giúp bạn giữ được tính nhất quán.
  • Biến Global hữu ích khi nhiều hàm đang truy cập vào cùng một dữ liệu.

Ưu điểm của việc sử dụng biến cục bộ

  • Sử dụng các biến cục bộ cung cấp một đảm bảo giá trị của biến nguyên vẹ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 thể đ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 công nhận bởi hàm mà chúng được khai báo.
  • Các biến cục bộ sẽ bị xóa ngay 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.

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 hoàn thành việc thực thi chương trình. Đ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 nào. 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 cấu trúc lại mã, bạn sẽ cần phải 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 chuyển nhiều lần vì không thể chia sẻ dữ liệu giữa các mô-đun.
  • Chúng có một phạm vi rất hạn chế.

Điều gì là hữu ích hơn?

Biến cục bộ và toàn cục quan trọng như nhau trong 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.

********************

Đăng bởi: thcs Hồng Thái

Chuyên mục: Giáo Dục

Bản quyền bài viết thuộc Trường THCS Hồng Thái Hải Phòng. Mọi hành vi sao chép đều là gian lận!

Nguồn chia sẻ: Trường thcs Hồng Thái (thcshongthaiad.edu.vn)

THCS Hồng Thái

“Đừng xấu hổ khi không biết, chỉ xấu hổ khi không học.” Khuyết Danh
Back to top button