程序的输出是什么?
#include<stdio.h>
void main()
{
int i = 0;
while(i < 10)
{
i++;
printf("%d\n",i);
}
}
输出是从0开始还是从1开始,正如我的教授教我的那样,与使用++ i一样,使用i ++时变量的值仅在循环结束时才增加?
答案 0 :(得分:2)
在语句++
完成之前,使用前缀++
或后缀i++;
进行递增的副作用。语句处于循环状态不会改变这一点。
您的教授是正确的。第一次在循环中调用printf
时,i
的值将为1,因为前一条语句使该值递增。
相反,您有以下代码:
while(i < 10)
{
printf("%d\n",i++);
}
然后在第一次迭代中将打印0 。在这种情况下,i
的值会增加,但是后缀++
运算符意味着i
的旧值会传递给printf
调用。
答案 1 :(得分:1)
将从1开始,因为i ++行在您输入要打印的下一行之前结束,因此在同一行/命令中执行其他操作时增加它的++ i与i ++是不同的。 例如:如果您使用
printf("%d",i++);
它会在递增i之前打印0,但是如果您这样输入:
printf("%d",++i);
它将首先将i递增(从0到1),然后打印i(第一次打印时为1)。
答案 2 :(得分:0)
您的代码将打印1作为第一个值。
i++
在语句末尾增加值,反之亦然++i
在语句前增加值。通常在分配变量时使用:
i = 5;
int a = ++i; // a=6, i=6
i = 5;
int b = i++; // b=5, i=6