Sự khác biệt giữa biến địa phương và toàn cầu

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 11 Có Thể 2024
Anonim
Sự khác biệt giữa biến địa phương và toàn cầu - Công Nghệ
Sự khác biệt giữa biến địa phương và toàn cầu - Công Nghệ

NộI Dung


Như chúng ta đã thảo luận trước đó, một biến là một tên, được đặt cho một vị trí bộ nhớ và nó phải được khai báo trước khi sử dụng. Trong C, tất cả các biến được khai báo khi bắt đầu chương trình. Trong C ++, các biến có thể được khai báo, tại bất kỳ thời điểm nào, trước khi chúng được sử dụng trong hướng dẫn.

Các biến được phân loại thành variable biến địa phương và biến toàn cầu, đây là chủ đề chính của cuộc thảo luận của chúng tôi. Ở đây, sự khác biệt chính giữa biến cục bộ và biến toàn cục là biến cục bộ được khai báo bên trong khối chức năng. Ngược lại, biến toàn cục được khai báo bên ngoài các hàm trong chương trình.

Hãy để nghiên cứu thêm một số khác biệt giữa một biến cục bộ và biến toàn cục cùng với biểu đồ so sánh.


  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Ưu điểm
  5. Nhược điểm
  6. Phần kết luận

Biểu đồ so sánh:

CƠ SỞ CHO SO SÁNH BIỂU TƯỢNG ĐỊA PHƯƠNG BIẾN ĐỔI TOÀN CẦU
Tờ khai Các biến được khai báo bên trong một hàm.
Các biến được khai báo bên ngoài bất kỳ hàm nào.
Phạm vi
Trong một chức năng, bên trong chúng được khai báo.Xuyên suốt chương trình.
Giá trị
Biến cục bộ chưa được khởi tạo dẫn đến việc lưu trữ giá trị rác.Biến toàn cục chưa được lưu trữ theo mặc định.
Truy cập Chỉ được truy cập bởi các câu lệnh, bên trong một hàm trong đó chúng được khai báo. Truy cập bởi bất kỳ tuyên bố trong toàn bộ chương trình.
Chia sẻ dữ liệuKhông cung cấpTạo điều kiện
Đời sốngĐược tạo khi khối chức năng được nhập và hủy khi thoát. Vẫn tồn tại trong toàn bộ thời gian chương trình của bạn đang thực hiện.
Lưu trữ
Biến cục bộ được lưu trữ trên ngăn xếp trừ khi được chỉ định.
Được lưu trữ trên một vị trí cố định được quyết định bởi một trình biên dịch.
Thông số đi quaCần thiếtKhông yêu cầu cho các biến toàn cầu.
Thay đổi giá trị thay đổiBất kỳ sửa đổi nào ngụ ý trong một biến cục bộ không ảnh hưởng đến các chức năng khác của chương trình.Các thay đổi được áp dụng trong biến toàn cục của hàm phản ánh các thay đổi trong toàn bộ chương trình.

Định nghĩa biến cục bộ

Một biến cục bộ luôn được khai báo bên trong một khối chức năng. Trong C, một biến cục bộ được khai báo khi bắt đầu một khối mã. Trong C ++, chúng có thể được khai báo ở bất cứ đâu trong khối mã trước khi sử dụng. Các biến cục bộ chỉ có thể được truy cập bởi các câu lệnh được viết bên trong một hàm trong đó các biến cục bộ được khai báo. Chúng được bảo mật theo một nghĩa nào đó, chúng không thể được truy cập bởi bất kỳ chức năng nào khác của cùng một chương trình.


Biến cục bộ tồn tại cho đến khi khối của hàm được thực thi và do đó bị hủy sau khi thực thi thoát khỏi khối. Các biến cục bộ mất nội dung ngay khi thực thi rời khỏi khối mà chúng được khai báo.

Lý do đằng sau nó là các biến cục bộ được lưu trữ trên ngăn xếp trừ khi lưu trữ đặc biệt của chúng được chỉ định. Ngăn xếp có tính chất động và sự thay đổi vị trí bộ nhớ dẫn đến lý do tại sao biến cục bộ không giữ giá trị của chúng ngay khi khối của hàm tồn tại.

Ghi chú:
Tuy nhiên, có một cách để giữ lại giá trị của biến cục bộ bằng cách sử dụng công cụ sửa đổi ‘static.

Định nghĩa biến toàn cầu

Một biến toàn cầu được khai báo bên ngoài tất cả các chức năng có trong một chương trình. Không giống như các biến cục bộ, biến toàn cục có thể được truy cập bởi bất kỳ hàm nào có trong một chương trình. Các biến toàn cục không đáng tin cậy lắm vì giá trị của chúng có thể được thay đổi bởi bất kỳ chức năng nào có trong chương trình.

Chúng tồn tại cho đến khi toàn bộ chương trình được thực thi hoàn toàn. Biến toàn cục giữ giá trị của chúng cho đến khi chương trình được thực thi. Lý do là chúng được lưu trữ trên một vùng bộ nhớ cố định, do trình biên dịch quyết định.

Biến toàn cầu rất hữu ích trong các tình huống có nhiều hàm đang truy cập vào cùng một dữ liệu. Sử dụng một số lượng lớn các biến toàn cục có thể có vấn đề, vì có thể có những thay đổi không mong muốn đối với giá trị của biến toàn cục.

  1. Các biến cục bộ được gọi là ‘cục bộ vì chúng chỉ được biết đến với các câu lệnh được viết trong một hàm bên trong mà chúng được khai báo và không biết đến bất kỳ hàm nào khác có bên ngoài khối hàm đó. Trong trường hợp của một biến toàn cục, chúng được biết đến với mỗi và mọi hàm có trong một chương trình; do đó, chúng được gọi là ’toàn cầu.
  2. Các biến toàn cục giữ giá trị của chúng cho đến khi chương trình đang trong giai đoạn thực thi, vì chúng được lưu trữ tại một vị trí cố định do trình biên dịch quyết định. Biến cục bộ được lưu trữ trên ngăn xếp; do đó, chúng không giữ được giá trị của chúng vì ‘ngăn xếp có bản chất động, nhưng trình biên dịch có thể được định hướng để giữ lại giá trị của chúng, bằng cách sử dụng công cụ sửa đổi‘ tĩnh.
  3. Nếu một biến toàn cục và biến cục bộ được khai báo có cùng tên thì tất cả các câu lệnh của khối mã trong đó biến cục bộ được khai báo sẽ chỉ tham chiếu đến biến cục bộ và sẽ không ảnh hưởng đến biến toàn cục.
  4. Một biến cục bộ bị hủy khi điều khiển chương trình thoát ra khỏi khối trong đó biến cục bộ được khai báo. Tuy nhiên, một biến toàn cục bị hủy khi toàn bộ chương trình bị chấm dứt.

Ưu điểm

Biến cục bộ

  • Lợi ích chính của một biến cục bộ là không có sự thay đổi ngẫu nhiên của dữ liệu. Biến được khai báo bên trong một khối và các khối mã này sử dụng biến đó và tránh các tác dụng phụ không mong muốn.
  • Biến cục bộ tiêu thụ bộ nhớ trong một khoảng thời gian giới hạn, chỉ khi khối chứa biến được thực thi.

Biến toàn cầu

  • Biến toàn cục rất hữu ích khi bạn đang xử lý một số hàm trong chương trình thao tác cùng một dữ liệu.
  • Những thay đổi cần được áp dụng trong toàn bộ chương trình sẽ dễ dàng hơn thông qua việc thực hiện một biến toàn cục.
  • Chúng tôi có thể truy cập từ bất cứ đâu hoặc thông qua bất kỳ chức năng ngẫu nhiên nào của chương trình.

Nhược điểm

Biến cục bộ

  • Phạm vi của biến cục bộ bị hạn chế.
  • Cấm chia sẻ dữ liệu.
  • Họ không thể giữ lại dữ liệu giữa các cuộc gọi vì các biến cục bộ được tạo và xóa với mỗi lần nhập và thoát khỏi khối. Tuy nhiên, công cụ sửa đổi tĩnh có thể được sử dụng để giữ lại các giá trị.

Biến toàn cầu

  • Việc sử dụng một số lượng lớn các biến toàn cục có thể dẫn đến việc tạo ra các lỗi chương trình.
  • Vấn đề chính mà nó gây ra là sự xuất hiện ngẫu nhiên của các thay đổi do các biến toàn cầu phổ biến trong suốt chương trình.
  • Nó cũng có thể làm tăng nhu cầu tiến hành tái cấu trúc mã, đây là một quá trình rất rộng lớn trong đó toàn bộ mã chương trình được cơ cấu lại.

Phần kết luận:

Các biến cục bộ và toàn cầu đều cần thiết và được yêu cầu như nhau trong khi viết chương trình. Tuy nhiên, việc khai báo một số lượng lớn các biến toàn cục có thể là vấn đề trong một chương trình lớn, vì nó có thể gây ra những thay đổi không mong muốn đối với biến toàn cục; và thật khó để xác định phần nào của chương trình đã tạo ra sự thay đổi đó. Do đó, người ta nên tránh khai báo các biến toàn cầu không cần thiết.