执行下面语句:
int a[4] = { 0 }; for(int i=0;i<4;++i){ if(i&1){ a[i]=1; } }
则a数组中的值为()
for循环的执行顺序用如下表达式:
for(expression1;expression2;expression3) { expression4; }
1)第一次循环,即初始化循环。
首先执行表达式expression1(一般为初始化语句);
再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;
如果符合,则执行expression4,否则,停止执行;最后执行expression3。
2)第N(N>=2)次循环
首先执行expression2,判断在expression3是否符合在expression2要求;
如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。
如此往复,直至expression3不满足在expression2条件是为止。
本题执行顺序为:
if(i & 1)利用了位运算的性质来检查一个整数i是否为奇数。在二进制表示中,一个整数的最低位为 1 表示它是奇数,为 0 表示它是偶数。
二进制中,最低位是指二进制表示的最右边的一位。在二进制表示中,奇数的最低位总是1,偶数的最低位总是0。
因此,当你使用i & 1时,它实际上是在检查i的二进制表示的最低位。如果最低位是1,那么结果就是1,表示i是奇数;如果最低位是0,结果就是0,表示i是偶数。
这是一种非常快速和有效的方法来判断一个整数的奇偶性,因为它直接利用了二进制的特性。