为什么输出不是ASCII值1? #包括 void main() { char-cnt=0; 对于(cnt;cnt>2;cnt=cnt+1); printf(“%d”,cnt); }

为什么输出不是ASCII值1? #包括 void main() { char-cnt=0; 对于(cnt;cnt>2;cnt=cnt+1); printf(“%d”,cnt); },c,loops,ascii,C,Loops,Ascii,我认为代码的输出应该是ASCII值1,因为0的值在循环之后递增,实际输出应该是0还是ASCII值0(初始化0时不在引号中)?条件cnt>2失败,因为cnt的值是0,小于2 因此,循环的第三个表达式: #include<stdio.h> void main() { char cnt=0; for(cnt;cnt>2;cnt=cnt+1); printf("%d",cnt); } 将不执行,这意味着cnt将保持在0 可能您想写入cnt2失败,因为cnt的值为0,

我认为代码的输出应该是ASCII值1,因为0的值在循环之后递增,实际输出应该是0还是ASCII值0(初始化0时不在引号中)?

条件
cnt>2
失败,因为
cnt
的值是0,小于
2

因此,循环的第三个表达式:

#include<stdio.h>
void main()
{
   char cnt=0;
   for(cnt;cnt>2;cnt=cnt+1);
   printf("%d",cnt);
}
将不执行,这意味着
cnt
将保持在
0


可能您想写入
cnt<2

条件
cnt>2
失败,因为
cnt
的值为0,小于
2

因此,循环的第三个表达式:

#include<stdio.h>
void main()
{
   char cnt=0;
   for(cnt;cnt>2;cnt=cnt+1);
   printf("%d",cnt);
}
将不执行,这意味着
cnt
将保持在
0


也许您想编写
cnt<2

for循环的
从未执行,因此指令
cnt=cnt+1
从未到达。这意味着当达到
printf
时,
cnt
仍然是
0

cnt = cnt + 1
#包括
void main()
{
char cnt=0;//cnt=0
对于(cnt;cnt>2;cnt=cnt+1);//循环从未执行cnt仍然为0
printf(“%d”,cnt);//打印一个int值(cnt),表示“0”
}

永不会执行
循环的
,因此永不会到达指令
cnt=cnt+1
。这意味着当达到
printf
时,
cnt
仍然是
0

cnt = cnt + 1
#包括
void main()
{
char cnt=0;//cnt=0
对于(cnt;cnt>2;cnt=cnt+1);//循环从未执行cnt仍然为0
printf(“%d”,cnt);//打印一个int值(cnt),表示“0”
}

您的意思是
cnt<2
?不,它是cnt>2。循环体(此处
)和增量(
cnt=cnt+1
)仅在条件为真时执行,而条件不是真时才执行。
cnt>2
如果以
cnt=0
开头,则为假。在你的例子中,初始操作是无用的,因为
cnt
是一个没有任何副作用的表达式。@JayeshKumpawat如果你读过C教科书中关于
printf
的章节,你就会知道
%d
格式说明符简单地打印参数的值,因此,如果
cnt
包含42
printf(“%d”,cnt)
将打印
42
。您的意思是
cnt<2
?否,它是cnt>2。循环体(此处
)和增量(
cnt=cnt+1
)仅在条件为真时执行,如果以
cnt=0开始,则
cnt>2
为false。在你的例子中,初始操作是无用的,因为
cnt
是一个没有任何副作用的表达式。@JayeshKumpawat如果你读过C教科书中关于
printf
的章节,你就会知道
%d
格式说明符简单地打印参数的值,因此,如果
cnt
包含42个
printf(“%d”,cnt)
将打印
42
。我在原始代码中添加了一些注释。我会解释…我在原始代码中添加了一些注释。我会解释。。。