一个关于数据类型的问题请教

2020-01-18 18:43发布

请看下面一小段程序,
uint x;
uchar temp;
.
.
.
if(temp==0)x--;
if(x<0)x=0;
.
.
.
运行会出错,我分析由于X默认值是0,当变量temp为0时,x减1就是负的了,超过了uint的范围
当我将第一行改成这样
int x;
就一切正常了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
asbzhang
1楼-- · 2020-01-19 09:45
注意signed和unsigned的数据类型的范围。
专注XXOO三十年
2楼-- · 2020-01-19 11:33
楼主回炉,重学。
Yvan
3楼-- · 2020-01-19 16:05
不可能会出现负数的,比如说x=0,x--,就是全ff了
Yvan
4楼-- · 2020-01-19 21:49
 精彩回答 2  元偷偷看……
cd4000
5楼-- · 2020-01-20 02:41
感谢大家的解答!
cd4000
6楼-- · 2020-01-20 06:47
Yvan 发表于 2016-3-7 13:42
另外,你那个uint x, 初始化也不一定是0哦,随机的哦

这个我就搞不懂了。因为初始化后的确显示的是0;当减1后,显示“35”(异常);当加1后,显示的是1

一周热门 更多>