#include<stdio.h>
int main()
{
char ch;
for(ch='0';ch<=127;ch++)
printf("%c %d",ch,ch);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这怎么会在执行时变成无限循环.我想知道背后的确切原因吗?类型是从int转换为char到char的原因吗?
还有一个小问题
是否所有具有.c扩展名的文件都需要main()在所有文件中?
在这里,你是比较char到int
for(ch='0';ch<=127;ch++)
Run Code Online (Sandbox Code Playgroud)
char的int值可以是0到255或-128到127,具体取决于实现.
在您的情况下,a char是a signed char,它可以将范围的值保持为-128到+127.因此,一旦你的情况下值达到127,它就会溢出并且你得到负值并且循环继续永远,因为它的值永远不会超过127.once它达到127,在下一次迭代中值将是-128,并且循环继续.
您可以使用 unsigned char ch;