Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm main có thể tự gọi chính nó trong C++ không?


Hàm main() có thể tự gọi chính nó trong C++. Đây là ví dụ của đệ quy (recursion) - nghĩa là một hàm gọi chính nó. Chương trình dưới đây minh họa điều này.

Ví dụ

#include <iostream>
using namespace std;

int main() {
    static int x = 1;
    cout << x << " ";
    x++;
    if (x == 11) {
        return 0;
    }
    main();
}

Kết quả

1 2 3 4 5 6 7 8 9 10

Hãy hiểu chương trình trên.

Biến x là biến tĩnh trong main(). Giá trị của nó được hiển thị rồi tăng lên 1. Câu lệnh if dùng để cung cấp điều kiện dừng chương trình vì nếu không nó sẽ tự gọi vô hạn. Chương trình kết thúc khi giá trị x bằng 11. Cuối cùng, hàm main() tự gọi chính nó bằng lời gọi hàm main().

int main() {
    static int x = 1;
    cout << x << " ";
    x++;
    if (x == 11) {
        return 0;
    }
    main();
}