int arr[]={1,2,3,4,5,6,7,8,9,10};
int i,temp;
for(i=0;i<10;i++){
}
System.out.println("a"+i);
temp=arr[0];
for(i=0;i<9;i++){
arr[i]=arr[i+1];
}
System.out.println("b"+i);
System.out.println("c"+i);
arr[i]=temp;
for(i=0;i<10;i++){
}
在这里 输出的结果是 a10
b9
c9
我大概明白 因为通过 for 这个循环之后, i 的值就被改变了。可我我想请教一下这个代码的底层原理, 是因为 我们一开始创建了一个全局变量 int i ,了 ,所以 i 就会改变了么? 请各位能帮忙解释一下 有没有一个专业的名词或者概念 是关于这个的。
表达能力有点差 不好意思各位i 不知道我说清楚了没有。。。谢谢了 各位
for(i=0;i<9;i++){
arr[i]=arr[i+1];
}
底层相当于这样的代码:
i = 0;
start:
if !(i < 9)) goto end;
arr[i]=arr[i+1];
i++;
goto start;
end:
因为for循环中有i++,这个会改变i的值
i就一个变量,在循环里改变了值,所以输出的时候就变了,了解这个只需要了解for循环即可