Câu hỏi về hàm trong C++

#include<iostream>

using namespace std;

// Khai báo hàm show
void show() {
	// Hiển thị ra màn hình các số từ 1 đến 10
	for (int i = 1; i <= 10; i++) {
		cout << i << " ";
	}
}

int main() {
	// Gọi hàm show
	show();
	return 0;
}

hello mọi người, em đang là newbie C++ và đang bắt đầu học về hàm, các bài trước khi học về mảng, vòng lặp,… thì khi code ở trong hàm int main() nó đều chạy luôn. Và trong đoạn code ở trên, em đang không rõ tại sao code ở trong hàm void không chạy luôn mà lại phải gọi xuống hàm main, mọi người giải đáp giúp em với.

Ở đoạn này:

void show() {
	// Hiển thị ra màn hình các số từ 1 đến 10
	for (int i = 1; i <= 10; i++) {
		cout << i << " ";
	}
}

Đây là đoạn dùng để khai báo hàm show, mà khai báo hàm là để cho máy biết về sự tồn tại của hàm và các câu lệnh trong hàm đó thôi, không có chuyện chạy luôn đâu. Cái này là tiêu chuẩn chung của mọi ngôn ngữ lập trình, từ bậc thấp đến bậc cao.

main là hàm chính. Nó là hàm được gọi đầu tiên sau bước khởi tạo, khai báo hàm main, các biến bên ngoài hàm main và các hàm khác và nó cũng là điểm bắt đầu (entry point) của mọi chương trình C, C++,…

À mà không có hàm nào tên là void nha. void là từ khóa, main với show mới là tên hàm. Đặt tên hàm là void thì compiler sẽ quăng lỗi ngay và luôn.

5 Likes

@HR16 đã giải thích chi tiết, nếu bạn vẫn thắc mắc thì:
“Muốn lấy con gái tao phải chọc tức tao”. (Hài dân gian).
Chọc tức tao chính là main() (entry point) đấy.

Giờ bạn thử không khai báo main() xem nào, nó sẽ báo là không có main() - điểm khởi đầu.

5 Likes

khai báo hàm kiểu void thì sẽ không có giá trị trả về đúng không ạ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?