标题:请教一个共用体问题!
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-182063-1-1.html




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

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