c - 它是如何无限次进行的?
问题描述
我试图理解其背后的逻辑,但无法理解。幕后发生了什么以及它是如何无限次进行的?
char j=1;
while(j <= 255)
{
printf("%d", j);
j = j+1;
}
解决方案
在 Cchar
中可以有符号或无符号 - 这取决于实现。如果signed
,则范围(在大多数平台上)为 -128 到 +127,因此始终小于 255。
更改类型如下:
unsigned char j=1;
将消除歧义。但即便j <= 255
如此,在大多数常见平台上总是如此,因为它永远不会大于 255。在这种情况下,它将“换行”为零,所以:
while(j != 0)
将起作用,或者更简单并且没有平台依赖性问题,只需将类型更改j
为int
:
int j=1;
这更有意义。
推荐阅读
- java - 如何将String值转换为json?
- php - 如何将 bool 显示为复选框列表并按其搜索?
- excel - 将值与单元格比较使用 VBA
- flutter - 如何在启动时捕捉颤振应用程序崩溃
- c# - 如何使用 SAPFEWSELib 在 SAP 中控制 GuiScrollbar?
- elasticsearch - 搜索整数的聚合列表 Elasticsearch
- javascript - 防止提交页面后删除表单输入
- javascript - 如何根据通过打字稿显示的动态更改图标条件?
- c# - 回发后保留 Gridview 超链接列
- groovy - Groovyc:unexpected token: assert -- 为什么?(常规 2.5.6)