【发布时间】:2021-09-05 15:27:09
【问题描述】:
这是两个相同的代码,第一个是 C++,另一个是 Java。 C++代码编译成功,Java代码报错:
last 没有初始化
但最后,i 的值将是last。但它抛出一个错误,请帮我弄清楚。
C++ 代码:
#include <iostream>
using namespace std;
int main()
{
int arr[] = {1,2,3,4,5,6};
int last;
for(int i=0;i<6;i++)
{
cout<<arr[i];
last = i;
}
cout<<last;
return 0;
}
输出:
1234565
Java 代码:
public class Main
{
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,6};
int last;
for(int i=0;i<6;i++)
{
System.out.print(arr[i]);
last = i;
}
System.out.print(last);
}
}
输出:
Main.java:19: error: variable last might not have been initialized
System.out.print(last);
^
1 error
【问题讨论】:
-
你可以初始化它。 C+ 方面的良好实践。
-
编译错误。编译器不够聪明,无法知道 last 总是得到一个值。最后初始化一些东西。