我想知道为什么this code
的输出什么都没有?是否与 for
循环表达式中使用 SIZE
有关?
代码
#include<stdio.h>
int array[6] = {4, 5, 6, 10, -1, 0};
#define SIZE (sizeof(array)/sizeof(array[0]))
int main() {
int i;
for (i= -1; i< SIZE; ++i) printf("%d", array[i+1]);
return 0;
}
最佳答案
for (i= -1; i< SIZE; ++i) printf("%d", array[i+1]);
相反,在循环中将 i
初始化为 0
-
for (i= 0; i< SIZE; ++i) printf("%d", array[i]);
为什么你没有得到任何输出,因为由于有符号和无符号整数之间的比较(转换 -1
,循环不迭代 到 unsigned int
结果是一个非常大的值,因此条件为假)。
关于c - 为什么这段代码会有输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34808036/