int 可能是 long int, 也可能是 short int,没有严格规定。
现代编译器 规定 int 就是 long int。
古老的编译器,例如 TC 却规定 int 是 short int.
运算大一点的数据,例如做乘法,short int 数值超界,就不能得到正确结果。
你的程序 估计用了 老编译器。
用long完全是为了兼容早期代码,时下常见的32位编译器下的C++的long和int完全是一回事,表达的数字范围都是-2147483648~+2147483647。
取值范围不同