在学习输入输出时,控制台出现了“input is never closed”的错误,在查阅百度后发现是没有在最后加上input.close的语句造成的。
不加上无法运行的原因是,close是为了保证能将系统为input开辟的空间释放,因为声明Scanner变量时,系统自动分配了内存,在使用完之后,系统并不会自动释放内存,所以在编译时系统会报错。笔者认为,close的作用与C语言中free()的作用类似,但是C语言编译器在使用malloc后不会强制让你释放内存。
因笔者水平有限,如有错误,还望指正。