最近刷ACM的时候C和Java轮换着用(别问,问就是不会C++),在输出方面,C语言一般除了输出字符串外,均要在输出项前添加引导符引导输出格式;而Java除非自己特意使用格式化输出,否则引导符啥的duck不必。
今天在用C语言写题的时候Java思维一下子没转换过来,结果就在输出格式上出了一点点错误,结果直接导致了一大堆代码没执行- -,然后喜闻乐见的debug半天找不出问题在哪……
废话不多说,直接上图和结论,补一个踩坑记录:
C语言直接输出整数时:
不难发现,由于没有引导符,之后的代码被全部跳过了,程序直接快进到结束。
那么,如果变量没有加引导符,会发生什么呢?
譬如这样:
但令人惊讶的是,这次程序并没有结束,而是绕过这行代码继续执行去了(或者应该说输出不了):
那么现在我们换成C++和Java来look look:
C++的话无论是整数还是变量都是直接报错:
Java毫无疑问的正常输出了:
总结:不同语言输出格式不同,切不可记忆混淆,否则导致的后果可能会很严重(认真脸),望广大程序员同胞们莫要犯与我一样的低级错误!
本人水平有限,文章难免有不妥之处,还请各位dalao批评指正。