Phạm vi biến trong C

Bài viết dưới đây Taimienphi.vn sẽ giới thiệu cho bạn chi tiết về phạm vi biến trong C++. Cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn.

Mục Lục bài viết:

1. Phạm vi biến trong C++

2. Biến cục bộ trong C++

2.1. Khai báo biến cục bộ trong C++

3. Biến toàn cục trong C++

4. Điều gì xảy ra nếu biến cục bộ cùng tên với biến toàn cục trong một hàm?

5. Cách truy cập biến toàn cục khi biến cục bộ và biến toàn cục có cùng tên?

 

1. Phạm vi biến trong C++

Phạm vi biến trong C++ được định nghĩa là khu vực mà chương trình nơi biến hoạt động. Trong lập trình, phạm vi của một biến được định nghĩa là phạm vi của mã chương trình, trong đó chúng ta có thể truy cập, khai báo hoặc làm việc với biến.

Trong C++ có 2 loại phạm vi biến chính là:

- Biến cục bộ (Local Variable)

- Biến toàn cục (Global Variable)

2. Biến cục bộ trong C++

Các biến được định nghĩa trong một hàm hoặc một khối được gọi là biến cục bộ của các hàm đó.

- Các nội dung bên trong khối được đặt trong '{' and '}'.

- Các biến cục bộ không tồn tại bên ngoài khối, nơi biến được khai báo, tức là các biến bên ngoài khối không thể được truy cập hoặc sử dụng.

2.1. Khai báo biến cục bộ trong C++

Các biến cục bộ được khai báo bên trong một khối.

Đầu ra có dạng:

Chương trình trên hiển thị thông báo lỗi "age was not declared in this scope". Biến age được khai báo trong hàm func(), vì vậy age là biến cục bộ của hàm func() và không hiển thị với một phần của chườn trình bên ngoài hàm này.

Chương trình chỉnh sửa: Để sửa lỗi chương trình trên, chúng ta chỉ cần hiển thị giá trị của biến age trong hàm func(), như trong chương trình dưới đây:

Kết quả đầu ra có dạng:

Age is: 18

3. Biến toàn cục trong C++

Đúng như tên gọi của nó, biến toàn cục (Global Variable) trong C++ có thể truy cập được từ bất kỳ phần nào trong chương trình.

- Biến toàn cục có sẵn trong toàn bộ chương trình.

- Biến này được khai báo ở đầu chương trình, bên ngoài tất cả các hàm hoặc khối.

- Khai báo biến toàn cục: Biến toàn cục thường được khai báo bên ngoài tất cả các hàm và khối, ở đầu chương trình và có thể được truy cập từ bất kỳ phần nào của chương trình.

Kết quả đầu ra có dạng:

Trong chương trình trên, biến số global có thể được khai báo ở đầu chương trình, bên ngoài tất cả các hàm, vì vậy nó là biến toàn cục và có thể được truy cập hoặc cập nhật từ bất kỳ phần nào của chương trình.

 

 

4. Điều gì xảy ra nếu biến cục bộ cùng tên với biến toàn cục trong một hàm?

Vấn đề đặt ra ở đây là nếu có một biến bên trong hàm cùng tên với biến toàn cục và nếu hàm cố gắng truy cập biến có cùng tên đó thì biến nào sẽ được ưu tiên? Biến cục bộ hay biến toàn cầu? Để đi tìm câu trả lời, bạn đọc cùng tham khảo chương trình dưới đây:

Nhìn vào chương trình trên có thể thấy, biến có tên global được khai báo ở phần đầu là biến toàn cầu và lưu trữ giá trị 5, trong khi đó khai báo trong hàm main là hàm cục bộ và lưu trữ giá trị 2. Câu hỏi đặt ra là khi giá trị được lưu trữ trong biến có tên global, có thể được in từ hàm main thì đầu ra là 2 hay 5?

- Thông thường khi 2 biến cùng tên được định nghĩa thì trình biên dịch sẽ trả về thông báo lỗi compile time. Nhưng nếu các biến được định nghĩa trong các phạm vi khác nhau thì trình biên dịch sẽ cho phép.

- Bất cứ khi nào một biến cục bộ được định nghĩa cùng tên với biến toàn cục thì trình biên dịch sẽ ưu tiên cho biến cục bộ.

Như vậy trong chương trình trên, biến cục bộ có tên là global sẽ được ưu tiên, vì vậy đầu ra sẽ là 2.

 

5. Cách truy cập biến toàn cục khi biến cục bộ và biến toàn cục có cùng tên?

Điều gì sẽ xảy ra nếu chúng ta truy cập biến toàn cục có cùng tên với một biến cục bộ.

Để giải quyết vấn đề này, chúng ta sẽ sử dụng toán tử phân giải phạm vi (scope resolution operator). Chương trình dưới đây minh họa cách sử dụng toán tử phân giải phạm vi:

Kết quả đầu ra có dạng:

Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về phạm vi biến trong C++ là gì. Nếu có bất kỳ thắc mắc hoặc câu hỏi nào cần giải đáp, bạn đọc có thể để lại ý kiến của mình trong phần bình luận bên dưới bài viết, Taimienphi.vn sẽ giải đáp các thắc mắc của bạn sớm nhất có thể.

Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu thêm về các kiểu dữ liệu cũng như comment trong C++ cũng là một nội dung quan trong khi học lập trình C, comment trong C được sử dụng để cho phép các lập trình viên chèn một số ghi chú hoặc mô tả, tăng cường khả năng đọc hoặc hiểu chương trình.

Trong các bài học C++ trước bạn đọc đã cùng Taimienphi.vn tìm hiểu về cú pháp C++ cơ bản cũng như kiểu biến và khai báo biến trong C++. Trong bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về phạm vi biến trong C++.
Con trỏ (pointer) trong C
Mảng (array) trong C (phần 3)
Input và Output trong C
Cấu trúc dữ liệu trong C
Date và Time trong C
Lệnh điều kiện trong C

ĐỌC NHIỀU