我無法弄清楚我做錯了什麼。我想打印非零元素,下面的代碼不打印任何東西。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]);
}
}
有什麼不對?
我想你現在明白了。 –