为什么输出不是ASCII值1? #包括 void main() { char-cnt=0; 对于(cnt;cnt>2;cnt=cnt+1); printf(“%d”,cnt); }
我认为代码的输出应该是ASCII值1,因为0的值在循环之后递增,实际输出应该是0还是ASCII值0(初始化0时不在引号中)?条件为什么输出不是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,
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
包含42printf(“%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
。我在原始代码中添加了一些注释。我会解释…我在原始代码中添加了一些注释。我会解释。。。