这不是乱码,在int a[999]中原始存放的是不规律的内容,在你运行过程中没有对a进行初始化也没有对a[n]位置的值进行赋值时,最终输出只能原始在该内存位置中的一些乱七八糟的内容,你可以把它理解为输出的是一个没有存放有效值的地址
i < n 你返回a[n]是不是说不过去?