| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 436 人关注过本帖
标题:请教一个共用体问题!
只看楼主 加入收藏
camelbupt
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-28
收藏
 问题点数:0 回复次数:7 
请教一个共用体问题!

#include "stdio.h"
union data
{
int i[2];
float a;
long b;
char c[4];
};
int main()
{
union data d;
scanf("%d,%d",&d.i[0],&d.i[1]);
printf("i[0]=%x,i[1]=%d,a=%f,b=%ld\n",d.i[0],d.i[1],d.a,d.b);
printf("c[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c\n",d.c[0],d.c[1],d.c[2],d.c[3]);
}
当输入10000,20000时,为什么a的值始终都是0啊?

搜索更多相关主题的帖子: include 
2007-10-30 18:43
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 

整数和浮点数存储格式不一样.

你可以做实验将1个整形变量的值以 %f格式打印

2007-10-30 19:39
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
回复:(camelbupt)请教一个共用体问题!
你只给整形数组赋值了.并没有给其它变量赋值.

2007-10-30 19:45
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 
格式转换问题。
学习。
2007-10-31 10:13
xiuye1987
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-18
收藏
得分:0 
你输入的事i[]的两个值,a得值当然不变了

2007-10-31 16:48
camelbupt
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-28
收藏
得分:0 

看来还是有不少人不理解union这个东东啊,
一楼的是正解啊,整型和浮点型在内存中的存储格式不一样。

2007-10-31 17:31
blosaa
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-17
收藏
得分:0 
#include<iostream.h>

union date
{
int i[2];
float a;
long b;
char c[4];

};

main()
{
date d;
cout<<"请输入两个数:";
cin>>d.i[0]>>d.i[1];
cout<<d.i[0]<<','<<d.i[1]<<','<<d.a<<endl;
cin>>d.a;
cout<<d.i[0]<<','<<d.i[1]<<','<<d.a<<endl;
}

看了这个程序,你想想就明白了撒!!!!!!!


2007-10-31 19:33
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
收藏
得分:0 
输入整数不好判断浮点数是几,
你可以输入浮点数,看输出整数的情况。
2007-10-31 23:16
快速回复:请教一个共用体问题!
数据加载中...
 
   



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

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