while
#include <stdio.h>int main()
{
signed char i = 0;
while (i <= 0)
{
printf("%d", i);
i = i - 1;
}
return 0;
}
为啥输出是从0到128啊 是 0 到 -128 吧。 本帖最后由 sunrise085 于 2020-6-4 14:32 编辑
输出的是0到-128,再下一个数就是127了,就不符合条件i<=0了。也就退出了。signed char的范围是-128到127 #include <stdio.h>
int main()
{
signed char i = 0;
while (i <= 0)
{
printf("%d\n", i);
i = i - 1;
}
while (i >= 0)
{
printf("%d\n", i);
i = i - 1;
}
while (i <= 0)
{
printf("%d\n", i);
i = i - 1;
}
return 0;
}
我运行这个,输出是从0->-128再从127->0再从0->-128 小白求解,这个 signed char i = 0;是啥意思呀{:10_266:} 小甲鱼的铁粉 发表于 2020-6-4 14:51
小白求解,这个 signed char i = 0;是啥意思呀
signed 是带符号的意思。
char类型的大小是一个字节8bit。signed的其中有1bit是代表它是正数还是负数。7bit的只有128种情况出现,正数(0~127)负数(-1~-128) Darth_EF 发表于 2020-6-4 16:55
signed 是带符号的意思。
char类型的大小是一个字节8bit。signed的其中有1bit是代表它是正数还是负数。7 ...
那这个i是int型还是char型的? 因为char只有一个字节。只取这个字节中的数。不管别的字节是啥。到了-128之后,下一个就返回到127了
页:
[1]