首页 > 解决方案 > 当最大值为净一且分配值为正一时,c中的for循环输出

问题描述

为什么输出为空白以及为什么循环会运行

for(i=1;i<=-10;i++)
    printf("*");

如果 i=-1 或 i= -10 运行一次并不重要 为什么

标签: cfor-loop

解决方案


只要i小于或等于 ,您的循环就会迭代-10。只要i大于-10该条件就永远不会为真,并且循环不会迭代,甚至不会迭代一次。

如果i == -10开始,循环将迭代一次。然后你这样做i++会增加i?to的值-9并且条件变为 false,并且循环不会再次迭代。

请注意,以上仅当当且仅当i是有符号整数时才成立。

如果i是一个无符号整数,事情就会变得非常不同。然后-10将转换为无符号值,那个值会变得很大,循环会迭代很多。


推荐阅读