c - 当最大值为负一且赋值为正一时,for循环在c中输出

标签 c for-loop

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

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

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

最佳答案

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

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

请注意,只有当 i 是一个有符号整数时,上述情况才成立。

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

关于c - 当最大值为负一且赋值为正一时,for循环在c中输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54925233/

相关文章:

c - 图像的快速转置和 C 中的 Sobel 滤波器优化 (SIMD)

c - 文件描述符轮询

javascript - 如何进入这个列表的内部?也可能是一个for循环?

c - 为什么我无法在 for 循环中计算 "array to NULL"?

c - 为什么程序不执行最终的 printf 语句?

java - 在 Java 中插入字符串的一部分

python - 将 numpy 数组元素的不同组合组合成数据帧

c - 我怎样才能获得所有文件的列表及其在c中的路径

c++ - 固定大小缓冲区中的树实现

c - 如何在C上使用libpng编写调色板图像?