为什么下面的第一个代码打印出15,而不是20?
list.sort(null)
为什么此代码会打印出15 20。
#include <iostream>
using namespace std;
int main(){
int arr[] = {10,15,20,15,30};
for(int i =1; i<3;i++){
cout<<arr[i++];
}
}
答案 0 :(得分:1)
在第一个代码中,循环从1开始。它指向元素15(因为数组索引从0开始)。
在print语句中,值i递增,因此现在i在索引2(值20)处。现在,控件到达了for循环的“增量部分”。 i的值现在增加到3。
现在,控件将检查循环的条件,然后循环终止。
在第二个代码中,您只是在增加数组索引内的值(索引未递增)。然后尝试添加其他打印语句。您会得到1621
答案 1 :(得分:0)
for(int i =1; i<3;i++){
cout<<arr[i++];
}
每次迭代后,i ++都会增加i的值。但是,由于您也在循环内对其进行了递增,因此,第一次,我将用1进行初始化,然后在循环内,它将打印a [i]的值并递增i的值,该值现在为2。循环迭代结束,这意味着您在循环中用作第三个参数的i ++将再次增加i的值。现在变成3,并且3不小于3,条件变成假,它什么也不打印。