我无法弄清楚我做错了什么。我想打印非零元素,下面的代码不打印任何东西。C for循环,测试数组元素给出奇怪的结果
#include <stdio.h>
int main()
{
int arr[4] = { 0, 3, 0, 7 };
// print non zero elements
for (int i = 0; i != 4 && arr[i] != 0; ++i)
printf("%d\t%d\n", i, arr[i]);
}
但是,如果我移动阵列测试像下面,它的工作原理:
#include <stdio.h>
int main()
{
int arr[4] = { 0, 3, 0, 7 };
// print non zero elements
for (int i = 0; i != 4; ++i) {
if (arr[i] != 0)
printf("%d\t%d\n", i, arr[i]);
}
}
有什么不对?
我想你现在明白了。 –