01/10/2018, 15:26

Biến được khai báo trong 1 hàm ngoài hàm main sau khi kết thúc có bị hủy?

Ví dụ ta có 1 biết kiểu int hay struct, list, float,… nào đó. khi kết thúc hàm đó (hàm đó nằm ngoài hàm main) thì nó có bị hủy đi ko ạ?
E cảm ơn ạ.

HK boy viết 17:42 ngày 01/10/2018

Những biến khai báo ngoài hàm main là biến toàn cục (global variables), tồn tại trong suốt chương trình. Huỷ hay không là do bạn. Dù sao đến hết chương trình thì các biến này cũng bị huỷ thôi.

Nguyễn Dương viết 17:41 ngày 01/10/2018

ý e là cái biến này được khai báo trong 1 cái hàm phụ nào đó ạ

HK boy viết 17:41 ngày 01/10/2018

À, biến đó gọi là biến cục bộ (local variables), chỉ tồn tại trong hàm, hết hàm thì biến bị huỷ.

Bạn thử chạy code

void fun(int n) {
    i = n * n + 3;
    cout << i << endl;
}

int main() {
    fun(3);
    cout << i << endl;
}

là biết ngay ấy mà.

rogp10 viết 17:38 ngày 01/10/2018

Có static thì nó vẫn nằm đó nhưng bị cô lập compile-time

Nguyễn Dương viết 17:40 ngày 01/10/2018

e biết bài e sai ở đâu r

Bài liên quan
0