| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 959 人关注过本帖
标题:新人自学C中遇到个问题希望大家帮忙解答
只看楼主 加入收藏
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
 问题点数:0 回复次数:7 
新人自学C中遇到个问题希望大家帮忙解答
本人是自己看教程学习的C语言   时间不长  所以会的也不多
今天在看视频的时候看到一个例题
程序如下:
#include <stdio.h>
void main()
{
    unsigned int a=65535;
    int b=-2;
    printf("a=%d,%o,%x,%u\n",a,a,a,a);
    printf("b=%d,%o,%x,%u\n",b,b,b,b);
}

在视频中讲到这例题的运行结果是:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
但是,我自己在VC++中运行后得到的结果却是:
a=65534,177777,ffff,65535
b=-2,37777777776,fffffffe,4294967294

程序我是照例题原样抄写的 但是怎么会结果不同?
例题我也对照了  没有发现错误啊
大家谁知道 告诉我下是怎么回事  谢谢了
搜索更多相关主题的帖子: 新人 例题 自学 视频 int 
2008-07-06 20:55
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
这个和你的编译系统有关系,各个系统的分配给变量的长度会不同,所以有的时候会和预期的不一样,不会溢出的~~~vc里你可以用sizeof()来测试下int unsignedint的字节数
printf("%d",sizeof(int));...
希望对你有用
2008-07-06 22:55
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
编译器~~~哎~~~说错了 呵呵
2008-07-06 22:57
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
得分:0 
谢谢了    那也就是说   我运行后的结果也是正确的了??
2008-07-06 23:56
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
对。

你们教材可能使用的是TC编译器,TC的int是16位,而VC++的int是32位,想获得教材那样的结果,试试下面的程序:

#include <stdio.h>
int main()
{
    unsigned short int a=65535;
    short int b=-2;
    printf("a=%hd,%ho,%hx,%hu\n",a,a,a,a);
    printf("b=%hd,%ho,%hx,%hu\n",b,b,b,b);
    return 0;
}

[[it] 本帖最后由 StarWing83 于 2008-7-7 00:05 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-07 00:03
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
得分:0 
   神了   5#给的程序就确实跟教程上的结果一样了

不过  对于为什么在VC++里要这么写还是有些不是很明白

看来我要学的东西还很多啊

这些不同编译器给内存分配多少字节数是不都得背下啊
2008-07-07 01:50
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
你编个程序用sizeof()测试一下不得了?

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-07-07 09:26
快速回复:新人自学C中遇到个问题希望大家帮忙解答
数据加载中...
 
   



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

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