| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:这个哪里错了呀 大神帮我看看
只看楼主 加入收藏
zhaoxu1990
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-7-9
结帖率:33.33%
收藏
 问题点数:0 回复次数:3 
这个哪里错了呀 大神帮我看看
unsigned int f()
{  
unsigned char a=123;  
unsigned char res;   
while(a-->=0)  
      {  
 res+=a;
      }  
return res;
}
搜索更多相关主题的帖子: return 
2015-05-06 20:06
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
请问一下unsigned int  和int  这样有什么区别??   我基本没用过unsigned   这个东西的作用是什么???有什么用

他们和我说,喜欢一个女生要大胆追!
2015-05-06 20:40
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
收藏
得分:0 
    unsigned int 定义的是无符号整型,int 定义的是有符号整型,我们都知道数据在计算机中是以二进制形式存储的,如果int类型的数据用2个字节存储的话,将其定义成无符号整型的话,则所有的二进制位都被当成数值,所以能表示的数值范围就是0到65535;将其定义成有符号整型的话,二进制的最高位就被看成符号位,其余的才被看成数值,所以能表示的数值范围为-32768到32767。
    目测楼主的程序存在以下问题:
    1、函数的返回值不一致,函数头“unsigned int f()”说明函数要返回一个无符号整型,而函数中最后“return res”,要返回的“res”在函数内却被定义成“unsigned char res”,即这里返回的是无符号字符型;
    2、“unsigned char res”说明定义的变量res是一个无符号字符型,用一个字节存储,存储的数据范围为0至255,可程序中利用一个循环来计算0至123的和,其结果超出了一个字节所能存储的最大值,却要存入一个字符型变量res中;
    3、无符号字符型变量res未初始化,在循环中“res+=a”的执行中,结果难以预测。
2015-05-06 21:55
zhaoxu1990
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-7-9
收藏
得分:0 
谢谢  学到了好多东西
2015-05-07 17:32
快速回复:这个哪里错了呀 大神帮我看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025168 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved