Hướng dẫn global variable and local variables c++ - biến toàn cục và biến cục bộ c ++

Tiếp theo → ← Prev

Các biến trong bất kỳ ngôn ngữ lập trình nào có vai trò quan trọng. Các biến được phân loại thành các biến toàn cầu và các biến cục bộ dựa trên phạm vi của chúng. Sự khác biệt chính giữa các biến toàn cầu và cục bộ là các biến toàn cầu có thể được truy cập trên toàn cầu trong toàn bộ chương trình, trong khi các biến cục bộ chỉ có thể được truy cập trong hàm hoặc khối mà chúng được xác định. Trong chủ đề này, trước tiên chúng ta sẽ hiểu các biến và phạm vi là gì, cùng với các biến cục bộ, các biến toàn cầu và sau đó là sự khác biệt giữa cả hai biến.

Hướng dẫn global variable and local variables c++ - biến toàn cục và biến cục bộ c ++

Một biến là gì?

Một biến là một tên được đặt cho một vị trí bộ nhớ để lưu trữ các giá trị trong chương trình máy tính. Nó được sử dụng để lưu trữ thông tin có thể được tham chiếu và thao tác trong một chương trình.

Chúng tôi có thể chọn bất kỳ tên nào cho biến, nhưng nó phải tuân theo ngữ nghĩa lập trình. Chẳng hạn như nó có thể, a, b, x, y, z, sub, div, Total, avg, v.v., a, b, x, y, z, sub, div, total, avg, etc.

Giả sử có hai giá trị, 10 và 20, mà chúng tôi muốn lưu trữ và sử dụng trong chương trình của chúng tôi. Đối với điều này, chúng tôi cần sử dụng một biến và chúng tôi sẽ thực hiện các bước dưới đây:

  • Đầu tiên, chúng tôi sẽ tạo hoặc khai báo một biến có tên phù hợp.
  • Gán các giá trị đó cho các biến để lưu trữ chúng.
  • Khi các giá trị này là cửa hàng, chúng ta có thể sử dụng các biến này với tên của chúng trong chương trình của chúng tôi.
Hướng dẫn global variable and local variables c++ - biến toàn cục và biến cục bộ c ++

Như chúng ta có thể thấy trong hình trên, có hai khe cắm bộ nhớ, 001 và 002 và chúng tôi đã đặt tên cho các vị trí này dưới dạng A và B. A chứa 10 và B chứa 20.

Các ngôn ngữ lập trình khác nhau có những cách khác nhau để khai báo biến. Ví dụ: bằng ngôn ngữ C, chúng ta có thể khai báo biến theo cách sau:

Cú pháp: (Cú pháp khai báo biến bằng ngôn ngữ C)

Example:

Phạm vi của biến

Mỗi biến được xác định và có thể được sử dụng trong phạm vi của nó và xác định rằng trong đó chương trình biến này có sẵn để sử dụng. Phạm vi có nghĩa là tuổi thọ của biến đó. Nó có nghĩa là biến chỉ có thể được truy cập hoặc hiển thị trong phạm vi của nó.

Phạm vi của các biến có thể được xác định với khai báo của chúng và các biến được khai báo chủ yếu theo hai cách:

  • Biến toàn cầu: Bên ngoài tất cả các chức năng Outside of all the functions
  • Biến cục bộ: Trong một khối hàm: Within a function block:

Biến toàn cầu là gì?

  • Các biến toàn cầu là các biến được khai báo bên ngoài tất cả các chức năng hoặc khối và có thể được truy cập trên toàn cầu trong một chương trình.
  • Nó có thể được truy cập bởi bất kỳ chức năng nào có trong chương trình.
  • Khi chúng tôi khai báo một biến toàn cầu, giá trị của nó có thể được thay đổi như được sử dụng với các chức năng khác nhau.
  • Tuổi thọ của biến toàn cầu tồn tại cho đến khi chương trình thực hiện. Các biến này được lưu trữ trong các vị trí bộ nhớ cố định được cung cấp bởi trình biên dịch và không tự động dọn dẹp.
  • Các biến toàn cầu chủ yếu được sử dụng trong lập trình và hữu ích cho các trường hợp trong đó tất cả các chức năng cần truy cập cùng một dữ liệu.

Example:

Trong ví dụ trên, A và B là các biến toàn cầu.

Ưu điểm của biến toàn cầu

  • Các biến toàn cầu có thể được truy cập bởi tất cả các chức năng có trong chương trình.
  • Chỉ cần một tuyên bố duy nhất.
  • Rất hữu ích nếu tất cả các chức năng đang truy cập cùng một dữ liệu.

Nhược điểm của biến toàn cầu

  • Giá trị của một biến toàn cầu có thể được thay đổi một cách tình cờ vì nó có thể được sử dụng bởi bất kỳ chức năng nào trong chương trình.
  • Nếu chúng ta sử dụng một số lượng lớn các biến toàn cầu, thì có khả năng tạo lỗi cao trong chương trình.

Một biến cục bộ là gì?

  • Các biến được khai báo bên trong hoặc bên trong một khối hàm được gọi là các biến cục bộ.
  • Các biến này chỉ có thể được truy cập trong hàm mà chúng được khai báo.
  • Tuổi thọ của biến cục bộ chỉ nằm trong chức năng của nó, điều đó có nghĩa là biến tồn tại cho đến khi hàm thực thi. Khi thực thi chức năng được hoàn thành, các biến cục bộ sẽ bị phá hủy và không còn tồn tại bên ngoài hàm.
  • Lý do cho phạm vi giới hạn của các biến cục bộ là các biến cục bộ được lưu trữ trong ngăn xếp, có bản chất năng động và tự động làm sạch dữ liệu được lưu trữ trong đó.
  • Nhưng bằng cách tạo biến tĩnh với từ khóa "tĩnh", chúng ta có thể giữ lại giá trị của biến cục bộ.

Example:

Trong ví dụ trên, chúng tôi đã khai báo X và Y hai biến bên trong hàm chính. Do đó đây là các biến cục bộ.

Ưu điểm của biến cục bộ

  • Cùng tên của một biến cục bộ có thể được sử dụng trong các chức năng khác nhau vì nó chỉ được nhận ra bởi hàm mà nó được khai báo.
  • Các biến cục bộ chỉ sử dụng bộ nhớ trong thời gian giới hạn khi hàm được thực thi; Sau đó, vị trí bộ nhớ tương tự có thể được sử dụng lại.

Nhược điểm của các biến cục bộ

  • Phạm vi của biến cục bộ chỉ giới hạn ở chức năng của nó và không thể được sử dụng bởi các chức năng khác.
  • Chia sẻ dữ liệu bởi biến cục bộ không được phép.

Biểu đồ so sánh giữa biến toàn cầu và biến cục bộ

Biến toàn cầuBiến cục bộ
Các biến toàn cầu được khai báo bên ngoài tất cả các khối chức năng.Các biến cục bộ được khai báo trong một khối hàm.
Phạm vi vẫn còn trong suốt chương trình.Phạm vi bị giới hạn và vẫn còn trong hàm chỉ trong đó chúng được khai báo.
Bất kỳ thay đổi nào trong biến toàn cầu đều ảnh hưởng đến toàn bộ chương trình, bất cứ nơi nào nó đang được sử dụng.Bất kỳ thay đổi nào trong 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.
Một biến toàn cầu tồn tại trong chương trình trong toàn bộ thời gian chương trình được thực thi.Một biến cục bộ được tạo khi hàm được thực thi và sau khi thực hiện kết thúc, biến bị phá hủy.
Nó có thể được truy cập trong suốt chương trình bởi tất cả các chức năng có trong chương trình.Nó chỉ có thể được truy cập bởi các câu lệnh hàm trong đó nó được khai báo chứ không phải bởi các chức năng khác.
Nếu biến toàn cầu không được khởi tạo, nó sẽ không theo mặc định.Nếu biến cục bộ không được khởi tạo, nó sẽ lấy giá trị rác theo mặc định.
Các biến toàn cầu được lưu trữ trong phân đoạn dữ liệu của bộ nhớ.Các biến cục bộ được lưu trữ trong một ngăn xếp trong bộ nhớ.
Chúng tôi không thể khai báo nhiều biến có cùng tên.Chúng ta có thể khai báo các biến khác nhau có cùng tên nhưng trong các chức năng khác.

Các ví dụ để hiểu sự khác biệt giữa biến địa phương và toàn cầu

Bây giờ chúng ta hãy hiểu các ví dụ trong các ngôn ngữ lập trình khác nhau để hiểu rõ hơn về sự khác biệt giữa các biến địa phương và toàn cầu.

Địa phương vs Global ở C

Example-1:

Output:

The addition result is: 120
The Multiplication result is: 200
30

Như chúng ta có thể thấy trong chương trình trên, chúng ta đã sử dụng các biến toàn cầu A và B đang được truy cập trong các chức năng khác nhau như add () và main (). Trong khi đó, cũng có các biến cục bộ như C, D, ANS1 và ANS2, đang được truy cập bởi các chức năng đó chỉ trong đó chúng được khai báo.a and b global variables that are being accessed in different functions such as Add() and main(). Whereas there are also local variables such as c, d, Ans1, and Ans2, which are being accessed by those functions only in which they are declared.

Nếu chúng ta cố gắng sử dụng các biến C và D bên ngoài hàm mul (), chúng sẽ được sử dụng làm biến mới. Như chúng tôi đã chỉ ra bằng cách lấy c trong hàm main (), nó được coi là một biến mới.

VS. Toàn cầu trong Python

Example-1:

Output:

Hey, I am a Local Variable!, I can be used within this block only in the program.
Hey, I am Global Variable!, I can be used everywhere in the program.

Trong chương trình trên, chúng tôi đã lấy một biến toàn cầu V1 và một biến V2 cục bộ. Vì V1 là toàn cầu, nó có thể dễ dàng truy cập trong bất kỳ chức năng nào và V2 là cục bộ; Nó chỉ được sử dụng trong chức năng khai báo của nó. Nhưng nếu chúng ta cố gắng sử dụng v1 trong func1, nó sẽ gây ra lỗi. Hãy xem ví dụ dưới đây:

Example-2

Nếu chúng tôi thử truy cập V1, nó có thể dễ dàng truy cập trong FUN1 và FUNC2. Nhưng nếu chúng ta cố gắng truy cập V2 bên ngoài chức năng của nó, có nghĩa là trong func2, nó sẽ gây ra lỗi thời gian chạy. Chúng tôi sẽ nhận được đầu ra dưới đây sau khi thực thi mã trên:

Lỗi runtime:

NameError: global name 'v2' is not defined

Output:

Hey, I am Local Variable!, I can be used within this block only in the program.
Hey, I am Global Variable!, I can be used everywhere in the program.
Hey, I am Global Variable!, I can be used everywhere in the program.

VS. Biến toàn cầu trong Java

Trong Java, không có khái niệm về các biến toàn cầu; Vì Java là ngôn ngữ lập trình hướng đối tượng, mọi thứ là một phần của lớp. Nhưng nếu chúng ta muốn làm cho một biến có thể truy cập toàn cầu, chúng ta có thể làm cho nó tĩnh bằng cách sử dụng từ khóa tĩnh.static Keyword.

Output:

Value of non-static variable is: 20
Value of static variable is:10

Trong chương trình trên, chúng tôi đã sử dụng một biến cục bộ hoặc biến không tĩnh và một biến tĩnh. Biến cục bộ có thể được truy cập bằng cách sử dụng đối tượng của lớp demo, trong khi biến tĩnh có thể được truy cập bằng tên của lớp.


Chủ đề tiếp theo giữaDifference between

← Tiếp theo →

Biến toàn cầu và biến cục bộ trong C là gì?

Biến cục bộ: Biến có phạm vi nằm bên trong hàm hoặc một khối trong đó chúng được khai báo. Biến tính: biến tồn tại bên ngoài tất cả các hàm. Global Variable: The variable that exists outside of all functions.

Sự khác biệt giữa biến toàn cầu và biến cục bộ là gì?

Một biến toàn cầu là một biến có thể truy cập được trên toàn cầu. Một biến cục bộ là một biến chỉ có thể truy cập vào phạm vi hiện tại, chẳng hạn như các biến tạm thời được sử dụng trong một định nghĩa hàm duy nhất. A local variable is one that is only accessible to the current scope, such as temporary variables used in a single function definition.

Biến toàn cầu trong C là gì?

Các biến được khai báo bên ngoài hàm đã cho được gọi là các biến toàn cầu.Chúng không bị giới hạn trong một chức năng cụ thể- điều đó có nghĩa là người ta có thể sử dụng bất kỳ chức năng nào để không chỉ truy cập mà còn sửa đổi các biến toàn cầu. are known as global variables. These do not stay limited to a specific function- which means that one can use any given function to not only access but also modify the global variables.

Một biến cục bộ trong C là gì?

Biến cục bộ: Một biến cục bộ là một loại biến mà chúng tôi khai báo bên trong một khối hoặc một hàm, không giống như biến toàn cầu.Do đó, chúng tôi cũng phải khai báo một biến cục bộ trong C ở đầu một khối nhất định.Ví dụ, void function1 () {int x = 10;// một biến cục bộ.a type of variable that we declare inside a block or a function, unlike the global variable. Thus, we also have to declare a local variable in c at the beginning of a given block. Example, void function1(){ int x=10; // a local variable.