| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:20分奖励,请教个棘手问题,高手进
只看楼主 加入收藏
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
20分奖励,请教个棘手问题,高手进
int main()
{  char s[10];
    int x;
   unsigned long htod(char a[],int n);
   gets(s);
   x=strlen(s);
   printf("%u\n",x);
   printf("%u\n%u\n",htod(s,x),x);
   printf("%u\n",x);
}
unsigned long htod(char a[],int n)
{
   
}

当输入12时,输出2 65470 0 2。同样是X为什么,在printf("%u\n%u\n",htod(s,x),x);中输出时为0呢?
搜索更多相关主题的帖子: 棘手问题 奖励 
2010-06-12 13:15
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
我怎么是2
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-06-12 13:31
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用heartnheart在2010-6-12 13:31:10的发言:

我怎么是2
不清楚啊,我的咋是0
2010-06-12 13:34
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-06-12 13:35
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
可能是编译器不同吧,这样这个问题就无意义了
2010-06-12 13:39
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
为什么编译器这样啊,如果我只用printf("%u\n%u\n",htod(s,x),x);这句输出的话,明显就错了,调试的过程中我就很难定位问题啊
2010-06-12 13:43
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1685
专家分:4252
注 册:2007-12-27
收藏
得分:20 
回复 6楼 kettle99
是你自己的问题,怎么能怪编译器呢?从现象上看,您用的应该是16位系统。
这个语句除了格式字符串,给printf传递了2个值:一个函数返回值,4字节;一个x,2字节。
printf分析了格式串,%u需要2字节,另一个%u也需要2字节,这样它们两个分享了上面说的函数返回值那4个字节,也就是说真正的x那两个字节还没碰到。

正确的做法是根据数据类型
printf("%lu\n%d\n",htod(...),x);

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-06-12 16:23
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用forever74在2010-6-12 16:23:13的发言:

是你自己的问题,怎么能怪编译器呢?从现象上看,您用的应该是16位系统。
这个语句除了格式字符串,给printf传递了2个值:一个函数返回值,4字节;一个x,2字节。
printf分析了格式串,%u需要2字节,另一个%u也需要2字节,这样它们两个分享了上面说的函数返回值那4个字节,也就是说真正的x那两个字节还没碰到。

正确的做法是根据数据类型
printf("%lu\n%d\n",htod(...),x);
高手,有点明白了,把分都给你哈哈
2010-06-13 01:03
快速回复:20分奖励,请教个棘手问题,高手进
数据加载中...
 
   



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

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