1、无法预知的行为
编译器无需或者说不能检查出来的错误,即使编译通过了,如果程序执行了一条未定义的表达式,那么有可能会出现错误。
有时候,有无法预知行为的程序能够执行,但是这个程序可能无法再其他编译器执行,也可能这次执行通过了,下次执行无法通过。
还可能出现,这个程序对一组输入有效,但是对另外一组输入无效。
2、依赖于实现环境的行为
编写完的程序,在这个环境下能正常运行,而在另一个环境下无法运行。若i把int类型的大小固定,那么这个程序就是不可移植的,当程序
移植到其他环境下去执行时可能会出现错误。