| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖
标题:这是在百度上看到的,强制转换
只看楼主 加入收藏
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
结帖率:100%
收藏
 问题点数:0 回复次数:5 
这是在百度上看到的,强制转换
int x;
    int i;
    x=3;
    i=(char)x;
    printf("%f %d\n", x, i);

字符能和数字的转换么?
搜索更多相关主题的帖子: 百度 
2011-09-15 13:05
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
转能通过ASCLL码,我没去上机,答案应该是3.000000    52

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-15 13:15
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
收藏
得分:0 
楼上错了
首先你的printf("%f %d\n", x, i);要改成printf("%d %d\n", x, i);才能正确的运行,因为你的x是整形,并没有转为实行
结果是3   3
首先x的值是3这个无疑
 注意:无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
所以i = (char)x;之后i的值是ascii码的十进制3,所以你以%d的格式输出i时输出结果为3。


[ 本帖最后由 hanxiaokun 于 2011-9-15 13:37 编辑 ]
2011-09-15 13:27
fedcab123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:100
注 册:2011-9-3
收藏
得分:0 
哦,我以为只能在数字之间转换呢
2011-09-15 13:32
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
输出应该是0.000000000+不确定的值
2011-09-15 13:56
tn628
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2011-9-15
收藏
得分:0 
原来可以这样的
2011-09-15 13:57
快速回复:这是在百度上看到的,强制转换
数据加载中...
 
   



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

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