STDIO
Tìm kiếm gần đây

    Nội dung

    Phạm Vi Của Biến

    17/04/2015
    15/09/2017
    Với C++ nói riêng, mọi biến đều có một phạm vi hoạt động, ngoài phạm vi đó. Biến coi như chưa tồn tại.

    Giới thiệu

    Bài viết giới thiệu định nghĩa về phạm vi của biến và cách xác định phạm vi của biến.

    Tiền đề bài viết

    Bài viết nằm trong chuỗi những bài viết về lập trình C++ cơ bản.

    Đối tượng hướng đến

    Bài viết dành cho người mới bắt đầu học lập trình với ngôn ngữ C++.

    Phạm vi của biến

    Mọi biến đều có một khu vực để hoạt động, ngoài khu vực này, biến không còn giữ giá trị của nó nữa và coi như không tồn tại. Khu vực hoạt động này được gọi là Phạm vi của biến.

    Trong hầu hết trường hợp thì phạm vi của biến là giữa 2 dấu ngoặc nhọn {…} nơi mà biến được khai báo. Tùy theo phạm vi, ta chia biến thành 2 loại:

    • Biến toàn cục (global variable)
    • Biến cục bộ (local variable)

    Ngoài ra, ta còn một loại khá đặc biệt, liên quan đến vấn đề khởi tạo, ta gọi là biến tĩnh (static variable).

    Biến toàn cục

    Biến toàn cục là biến một khi đã được khai báo thì có thể được sử dụng tại bất kỳ đâu hay bất kỳ file cpp nào cùng solution (cần dùng extern khi dùng ở file khác) suốt quá trình thực thi chương trình. Biến toàn cục phải được khai báo ngoài hàm main(). Nếu chỉ khai báo chứ không khởi tạo, biến toàn cục sẽ được gán giá trị mặc định bằng 0, tuy nhiên vẫn có thể được gán gia trị lại sau đó.

    #include <iostream>
    using namespace std;
    
    // Khai bao bien toan cuc x
    int x;
    
    int main()
    {
    	// Gan gia tri
    	x = 10 ;
    	cout << x;
    
     	// Gan gia tri
    	x = 20 ;
    	cout << x ; 
    }

    Biến cục bộ

    Biến cục bộ là biến có phạm vi giữa 2 dấu {…} nơi nó được khai báo. Ngoài phạm vi này, nó sẽ không tồn tại và nếu sử dụng sẽ dẫn đến lỗi. Nếu biến cục bộ không được khởi tạo thì nó sẽ mang giá trị rác.

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int i = 5;		
    	if (i < 10)		
    	{	// Bat dau pham vi if
    
    		// Khai bao va khoi tao bien cuc bo n
    		int n = 1;
    	}	// Ket thuc pham vi if
    
    	// Bien dich loi - Compile error do bien n khong ton tai
    	cout << n;
    }

    Biến tĩnh

    Giống như biến toàn cục, biến tĩnh hay còn gọi là static tồn tại từ lúc được khai báo đến khi chương trinh kết thúc. Giá trị mặc định nếu không được khởi tạo cũng là 0. Tuy nhiên, biến static chỉ có thể truy xuất từ trong phạm vi của nó và giá trị vẫn được giữ lại qua các hàm.

    • Nếu khai báo giữa hai dấu {…}, biến static chỉ có thể truy xuất ở trong 2 dấu này.
    • Nếu khai báo toàn cục, tức không thuộc khối {…} nào hết, biến static có thể truy xuất từ trong file *.cpp đó.
    #include <iostream>
    using namespace std;
    
    // Khai bao bien static toan cuc x
    static int x;		
    
    void foo()
    {
    	// Khai bao bien static cuc bo y
    	static int y;
    	
    	cout << x;	// Co the truy xuat
    	cout << y;	// Co the truy xuat
    }
    
    int main()
    {
    	cout << x;	// Co the truy xuat
    	cout << y;	// Khong the truy xuat vi ngoai pham vi y
    }

    Bài viết liên quan

    Biến Và Kiểu Dữ Liệu Của Biến Trong C++

    Để giúp cho việc ghi nhớ hoặc lưu trữ một thông tin trong quá trình viết một phần mềm một cách dễ dàng và đơn giản hơn thì chúng ta sử dụng biến (variable). Vì tính năng ...

    Nguyễn Địch Tú15/07/2017

    Bản Chất Của Biến Trong C/C++

    Những ngày đầu được học và làm việc với các kiểu biến như int, float, char….Tôi luôn có những thắc mắc về:”Điều gì đang xảy ra bên trong biến int, char… khi ta cấp phát ...

    Trần Hữu Danh16/01/2015

    Quản Lý Vị Trí Của Các Đối Tượng Trong Cocos2d-x

    Trong lập trình game, việc xử lý “cứng” các đối tượng là điều nên tránh. Khi đem sản phẩm lên một màn hình có tỉ lệ khác, vị trí các đối tượng có thể sẽ không còn được ...

    Rye Nguyen04/08/2015

    Biến Trong Ngôn Ngữ Lập Trình JavaScript

    Biến là một khái niệm khá quen thuộc trong mọi ngôn ngữ lập trình. Nhắc tới biến các bạn có thể hình dung được một cái gì đó dùng để lưu dữ liệu. Vậy trong JavaScript cú ...

    Nguyễn Nghĩa15/11/2015

    Đồ Hoạ Trên Cửa Sổ Dòng Lệnh - Console Graphics

    Các thư viện đồ họa đã phát triển rất mạnh mẽ, tận dụng gần như tối đa sức mạnh của phần cứng đồ họa nên đồ họa trên cửa sổ dòng lệnh dần bị rơi vào quên lãng. Nhưng ...

    Vũ Quang Huy02/10/2014

    Rvalue References Và Move Semantics

    Vì đây sẽ là một khái niệm khó hiểu đối với những người chưa biết về nó. Do đó, bài viết không đưa ra khái niệm “Move semantics” ngay mà sẽ đi sơ lượt qua các khái niệm ...

    Hoàng Tiến Đạt02/12/2014

    Biến Và Kiểu Dữ Liệu Trong Python

    Trên con đường trở thành một lập trình viên, biến là một khái niệm chắc chắn rằng bạn cần phải biết dù cho bạn có theo loại ngôn ngữ lập trình nào đi nữa. Python cũng ...

    Ryan Lê18/03/2015

    Đo Khoảng Cách Trong Không Gian Với Cảm Biến SRF05 Và Arduino

    Đối với robot, khi ở chế độ tự động, nó phải lấy thông tin của môi trường xung quanh như: khoảng cách, nhiệt độ, độ ẩm, ánh sáng ... Và tiến hành phân tích các dữ liệu ...

    Vũ Quang Huy29/09/2014

    Giới Thiệu Về Kỹ Thuật Phần Mềm – Software Engineering

    Software Engineering là một phần của System Engineering. Bởi vì, System Engineering liên quan đến mọi mặt của việc phát triển “hệ thống dựa trên máy tính” (Computer-based ...

    Trung Nguyễn22/09/2014

    Quản Lý Vị Trí Các Đối Tượng Trong Game

    Thông thường khi khởi tạo một đối tượng trong game, các lập trình viên đều khởi tạo một vị trí nào đó cho chúng. Điều đó có nghĩa là các đối tượng luôn tồn tại trong game ...

    Ryan Lê30/03/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    [email protected]

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020