【发布时间】:2020-12-19 07:26:02
【问题描述】:
在以下代码中:
#include <stdio.h>
#include <stddef.h>
void main ()
{
int n[5] = {1,2,3,4,5};
printf("%s%13s\n","element","value");
for (size_t i = 0; i<5; ++i)
{
printf("%7d%13u\n", i, n[i]);
}
}
输出是:
element value
0 1
1 2
2 3
3 4
4 5
我不明白的是 i 是如何预先递增的,它会给出从 0 到 4 的值。
我认为应该是 1 到 4,因为它不会通过条件。
这背后的原因是什么?
【问题讨论】:
-
for循环语句的第三部分(迭代表达式)总是在迭代完成后执行 -
正确的应该是
int main(void),通常是return 0;。 -
@UnholySheep 我在回答的最后部分使用了您的评论,当我在打字时意识到我会非常接近说同样的话。希望你不要介意。
标签: arrays c pre-increment size-t