为什么会出现无限死循环,如何修改该程序输出ASCII码
为什么会出现无限死循环,怎么修改该程序输出ASCII码?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char i;
for( i=1;i<=127;i++)
{
printf("%d\n",&i);
}
return 0;
}
------解决方案--------------------
------解决方案--------------------
LS正解!学习一下。
------解决方案--------------------
如1楼所言,char的范围是-128~127,对其进行运算不会超过这个范围,所以循环执行条件始终为真,所以死循环,改成无符号char范围是0~255就可以了;
printf中那个i不用取地址&,直接i就可以,取地址的话,显示的是变量i的地址值
#include <stdio.h>
#include <stdlib.h>
int main()
{
char i;
for( i=1;i<=127;i++)
{
printf("%d\n",&i);
}
return 0;
}
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char i; // 如果char i,则i的值是[-128, 127],所以i <= 127 永远为真,则会出现死循环
for(i=1;i<=127; i++)
{
printf("%d\n", i);
}
return 0;
}
------解决方案--------------------
LS正解!学习一下。
------解决方案--------------------
如1楼所言,char的范围是-128~127,对其进行运算不会超过这个范围,所以循环执行条件始终为真,所以死循环,改成无符号char范围是0~255就可以了;
printf中那个i不用取地址&,直接i就可以,取地址的话,显示的是变量i的地址值