【发布时间】:2020-02-27 07:03:34
【问题描述】:
#include<stdio.h>
void main()
{
char cnt=0;
for(cnt;cnt>2;cnt=cnt+1);
printf("%d",cnt);
}
我认为代码的输出应该是 1 的 ASCII 值,因为 0 的值在循环后递增,实际输出应该是 0 还是 0 的 ASCII 值(因为初始化 0 时不在引号中)?
【问题讨论】:
-
你的意思是
cnt < 2? -
不,是cnt > 2.
-
循环体(此处为
;)和增量(cnt = cnt+1)仅在条件为真时才会执行,而事实并非如此。 -
如果以
cnt=0开头,cnt>2为 false。在您的情况下,初始操作是无用的,因为cnt是一个没有任何副作用的表达式。 -
@JayeshKumpawat 如果你读过 C 教科书中处理
printf的章节,你就会知道%d格式说明符简单地打印参数的值,所以如果@987654330 @ 包含 42 个printf("%d",cnt)将打印42。