Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于c中的循环输出,当最大值为neative 1且赋值为正数时_C_For Loop - Fatal编程技术网

对于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的补码值。