Chào bạn,
vì chuẩn bây giờ là hàm main phải trả về 1 thứ để chương trình có thể hiểu là thành công hay không thành công. Ở đây có thể bạn có thể hiểu là return 0 ý chỉ thành công và khác 0 ý chỉ có lỗi.
Còn việc tại sao Visual Studio hay các thầy cô (sử dụng slide) đều sử dụng void main là tại vì visual nó đã tạo ra "style riêng" (mặc dù có vẫn tuân theo chuẩn) nhưng 1 số hàm (ví dụ itoa) hay điển hình void main này, các thầy cô ghi void main vì đơn giản là nó ngắn gọn (không cần return tốn dòng).
Thân