对于c中的循环输出,当最大值为neative 1且赋值为正数时
为什么输出为空以及为什么循环将运行对于c中的循环输出,当最大值为neative 1且赋值为正数时,c,for-loop,C,For Loop,为什么输出为空以及为什么循环将运行 for(i=1;i<=-10;i++) printf("*"); 对于(i=1;i只要i小于或等于-10,循环就会迭代。只要i大于-10,该条件就永远不会为真,循环不会迭代,甚至不会迭代一次 如果开始时i==-10,循环将迭代一次。然后执行i++,将i?的值增加到-9,条件变为false,循环将不再迭代 请注意,如果i是有符号整数,则上述情况仅为真 如果i是一个无符号整数,情况就大不相同了。然后-10将被转换成一个无符号值,该值将变得非常大,循
for(i=1;i<=-10;i++)
printf("*");
对于(i=1;i只要i
小于或等于-10
,循环就会迭代。只要i
大于-10
,该条件就永远不会为真,循环不会迭代,甚至不会迭代一次
如果开始时i==-10
,循环将迭代一次。然后执行i++
,将i?
的值增加到-9
,条件变为false,循环将不再迭代
请注意,如果i
是有符号整数,则上述情况仅为真
如果i
是一个无符号整数,情况就大不相同了。然后-10
将被转换成一个无符号值,该值将变得非常大,循环将重复很多次。当i为1或-1时,printf将不会执行。但如果它为-10,则会执行一次。如果循环的条件为i,您预计会发生什么如果输出为空,为什么你认为循环会运行一次?假设i
是有符号类型,例如int
,循环应该运行0次。非常感谢你,还有一个问题我不能理解spmain()的逻辑{int y,sp,t;char a,x;printf(“输入参考字母表(大写)”:”;scanf(“%c”,&a);t=a;for(y=1;yi)如果-10
转换为无符号值,则即使在有符号整数不是2的补码的平台上,它也将是2的补码值。