| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 894 人关注过本帖
标题:发现一个问题,2005年4月等级考试第38题
只看楼主 加入收藏
zhiqiang
Rank: 1
来 自:中国沈阳
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-4-24
收藏
 问题点数:0 回复次数:4 
发现一个问题,2005年4月等级考试第38题
2005年4月等级考试第38题
38)若有以下说明和定义
?? union dt
??{int a;char b;double c;}data;
??以下叙述中错误的是______。
??A)data的每个成员起始地址都相同
??B)变量data所占的内存字节数与成员c所占字节数相等
??C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
??D)data可以作为函数的实参

本人感觉这道题c和d的说法都是错误的。  大家认为呢。
搜索更多相关主题的帖子: 等级 考试 
2008-02-29 16:56
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
D 为什么错

—>〉Sun〈<—
2008-02-29 17:44
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
是啊,楼主d为什么错呢?
2008-02-29 17:58
zhiqiang
Rank: 1
来 自:中国沈阳
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-4-24
收藏
得分:0 
共用体变量好像不可以整体引用,只能引用它的成员,所以我认为D是错误的。

在《c语言教程版》里提到:
  “对联合变量的赋值,使用都只能是对变量的成员进行。 联合变量的成员表示为: 联合变量名.成员名 例如,a被说明为perdata类型的变量之后,可使用 a.class a.office 不允许只用联合变量名作赋值或其它操作。 也不允许对联合变量作初始化赋值,赋值只能在程序中进行。还要再强调说明的是,一个联合变量, 每次只能赋予一个成员值。换句话说,一个联合变量的值就是联合变员的某一个成员值。”

    在《C Primer Plus(第五版)中文版》说,联合可以初始化,是对第一个成员赋值。并且说这道题c选项是错误的。没有提到整体引用的问题。

[[it] 本帖最后由 zhiqiang 于 2008-3-1 00:02 编辑 [/it]]

2008-02-29 23:37
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
能不能引用,你写一个程序看看好了...
#include"stdio.h"
union dt
 {
     int a;
     char b;
     double c;
 }data;
main()
{
    int quote(union dt);
    data.a=1;
    quote(data);
    printf("%d",data.a);
}
int quote(union dt data1)
{
     return data1.a=2;    
}
这个是传递值而已.而且引用只有c++里面有,要加&.和java里面引用规则是不一样的.
2008-03-01 10:52
快速回复:发现一个问题,2005年4月等级考试第38题
数据加载中...
 
   



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

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