结果我无法弄清楚

时间:2016-12-23 15:52:06

标签: c

我最近在学习C. 我很难理解下面代码的结果。 为什么b最后是255?

unsigned char a=1;
int b=0;
do
{
   b++;
   a++;
}while(a!=0);

1 个答案:

答案 0 :(得分:6)

unsigned char只能取0到255之间的值。在代码中,在循环的每次迭代中,ab都会加1,直到{{1}当a为255并且应该再增加1时,它应该是256,但由于a只能取0到255之间的值,unsigned char取值0而不是256.然后,循环因a而停止,while(a!=0)将等于256 - 1 = 255。