Bài viết này sẽ cung cấp thông tin chi tiết về phạm vi biến trong C++. Hãy tiếp tục theo dõi để nắm bắt thêm kiến thức từ Mytour.
Mục Lục:
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. Biến cục bộ trù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ùng tên
1. Phạm vi của Biến trong C++
Phạm vi của biến trong ngôn ngữ lập trình C++ ám chỉ khu vực trong chương trình mà biến có thể hoạt động. Trong lập trình, phạm vi của một biến xác định nơi mà chúng ta có thể truy cập, khai báo, hoặc làm việc với nó.
Trong C++, có hai loại phạm vi chính cho biến:
- Biến cục bộ (Local Variable)
- Những biến cục bộ tự nhiên như hơi thở, chỉ tồn tại trong khung cảnh mà chúng được sinh ra, nghĩa là chúng không thể rời xa khỏi nơi chúng được khai sinh.
2.1. Khai báo biến cục bộ trong C++ - Đường hầm tới thế giới biến số
Các biến cục bộ nở ra như những bông hoa, chỉ mở rộng tại nơi chúng được chăm sóc và gieo mầm.
Kết quả cuối cùng tựa như tác phẩm nghệ thuật, mang đậm dấu ấn cá nhân của người sáng tạo.
Chương trình trên thông báo về sự vắng mặt của 'age' như một câu chuyện đau lòng. Biến age chìm đắm trong hàm func(), nơi chỉ có thể được nhìn thấy và không mở lời với thế giới bên ngoài.
Chương trình sửa lỗi: Để chữa cháy lỗi, hãy mở cửa sổ nhìn vào giá trị của age trong hàm func(), nhưng không thể rộng lớn hơn những gì chương trình dưới đây thể hiện:
Kết quả xuất hiện như một bức tranh, với hình ảnh của Age là: 18, như một tác phẩm nghệ thuật sống động.
Tuổi của chúng ta là: 18
3. Biến toàn cầu trong C++ - Sức mạnh bao phủ mọi góc nhỏ
Chính như tên gọi, biến toàn cầu (Global Variable) trong C++ như là những vệ tinh liên lạc, có thể gửi thông điệp đến từ mọi nơi trong chương trình.
- Như những linh hồn tự do, biến toàn cầu mở rộng khắp không gian của chương trình.
- Biến này là biểu tượng xuất hiện từ đầu chương trình, nằm ngoài tầm tay của mọi hàm và khối mã.
- Khai báo biến toàn cầu: Biến toàn cầu thường như là bản hòa âm, mở đầu từ khắp nơi trong chương trình, vươn ra khỏi bất cứ khối mã hay hàm nào.
Kết quả xuất hiện như một bức tranh số, chứa đựng bí mật của chương trình.
Trong chương trình trước mắt, biến số global giống như ngôi sao sáng nhất, đứng đầu tất cả các hàm, giữa trung tâm của sự chú ý và có thể được liên kết từ mọi phía 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? - Một cuộc gặp gỡ giữa cục bộ và toàn cầu, nơi mà câu chuyện bắt đầu.
Vấn đề đặt ra là nếu có một biến trong hàm mang cùng tên với biến toàn cầu, liệu biến nào sẽ là ngôi sao sáng hơn? Biến cục bộ hay biến toàn cầu? Hãy cùng khám phá bằng cách thảo luận với chương trình sau đây:
Nhìn vào đoạn mã, biến toàn cầu được tạo ra ở phần đầu đồng hành với giá trị 5, trong khi đó biến cục bộ trong hàm main nở rộ với giá trị 2. Câu hỏi đau đầu là khi giá trị xuất hiện từ biến toàn cầu, liệu nó sẽ là 2 hay 5?
- Thông thường, khi hai biến đụng độ tên, trình biên dịch sẽ hét lên lỗi compile time. Nhưng nếu chúng xuất hiện ở những phạm vi khác nhau, trình biên dịch như một làn gió thoải mái.
- Mỗi khi biến cục bộ bước vào cuộc đấu với biến toàn cầu, trình biên dịch sẽ bảo vệ ngôi vương cục bộ hơn cả.
Vậy trong kịch bản này, biến cục bộ có tên là global là ngôi sao nổi bật, đưa ra kết quả là 2.
5. Cách chiến thắng biến toàn cầu khi tên giống nhau
Nếu liên kết giữa biến toàn cục và biến cục bộ có cùng tên, thì thế giới của chúng ta sẽ như thế nào?
Để giải quyết bí ẩn, chúng ta sẽ học cách sử dụng toán tử phân giải phạm vi (scope resolution operator). Trong câu chuyện dưới đây, chúng ta sẽ nhìn rõ cách thức này:
Kết quả xuất hiện như hình vẽ của số, lộ ra những bí mật được giữ kín:
Trong tuyển tập này, Mytour đã mở cửa sổ để bạn nhìn thấy phạm vi biến trong C++. Nếu có nghi ngờ hoặc câu hỏi, hãy gửi ý kiến của bạn dưới bài viết, Mytour sẽ làm sáng tỏ mọi thắc mắc.
Ngoài ra, độc giả có thể mò vào những bài viết khác trên Mytour để khám phá thêm về các hình thức dữ liệu và những lời nhận xét trong C++. Comment trong C++ giống như bảng ghi chú, thêm vào để làm tăng hiểu suất đọc và sự hiểu biết về chương trình.
