找回密码
 立即注册
收起左侧

在QT中为什么可以:char(i)?

2
回复
7086
查看
[复制链接]
累计签到:13 天
连续签到:1 天
来源: 2015-2-2 23:01:57 显示全部楼层 |阅读模式
1Qter豆
在别人的小游戏中见到这样一段
char KeyGame::randLetter(){    int i = qrand()%25 + 65;    return char(i);}
为什么可以char(i)这样用的(好像c++没有),在帮助文档没有查到,实质这个char是?


最佳答案

查看完整内容

这样写是 强制转换. 你可以写个程序看看 char 类型 的 a-z , A-Z , 0-9输出的int是多少. 没记错的话 char c='0',对应的int类型应该是48; '0' -> 30H -> 48. 你可以看看ascii码表. 你的 int i = qrand()%25 + 65; i的范围在 [65,89] 对应的 字符是[A-Y],好像还差个Z.
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2015-2-2 23:01:58 显示全部楼层
本帖最后由 a408815041 于 2015-2-3 14:45 编辑

这样写是  强制转换.
你可以写个程序看看 char 类型 的 a-z , A-Z , 0-9输出的int是多少.
没记错的话  char c='0',对应的int类型应该是48;
'0' -> 30H  -> 48.
你可以看看ascii码表.
八进制十六进制十进制字符
6030480

你的
int i = qrand()%25 + 65;
i的范围在 [65,89] 对应的 字符是[A-Y],好像还差个Z.


回复

使用道具 举报

累计签到:13 天
连续签到:1 天
2015-2-2 23:06:33 显示全部楼层
  1. char KeyGame::randLetter()
  2. {
  3.     int i = qrand()%25 + 65;

  4.     return char(i);
  5. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了