java!是argv有影响吗?为啥输出是10

img


public class Test{
int x=3;
public static void main(String argv[]){
int x= 012;
System.out.println(x); }

int x=012;
因为12前面有0,表示八进制数,输出对应的十进制结果就是10了。

1*8+2*8^0=10

012表示8进制,转换为10进制就是10

012 = 1*8^1 +2*8^0=10