其实这是个历史兼容性的问题。
能问出这个问题意味着你接触过的c++编译器不够多,没有意识到并非所有C++编译器都执行了相同的标准。
而我,确实至少遇到过两种异常状况编译器,不写return的话,一种返回255一种返回随机数,虽然这些都是比较特殊的编译器,但他们确实客观存在。而这种返回值显然会造成困扰。
比较新的C++标准确实规定了不写默认返回0。但早期的C++编译器并未就此问题达成统一意见,甚至也并未实现所有C++标准。所以为了保留历史兼容性,还是建议手动返回0。