搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 大家帮我看个题目!!!我有点搞不懂???
标题:
大家帮我看个题目!!!我有点搞不懂???
只看楼主
kv2006
等 级:
新手上路
帖 子:1
专家分:0
注 册:2005-11-20
楼主
问题点数:0 回复次数:7
大家帮我看个题目!!!我有点搞不懂???
#include <stdio.h>
void main(void)
{union{char c;int i;}u;
u.c='A';u.i=0x0143;
printf("%d,%d",u.c,u.i);
}
远行结果为:67,323 为什么? 'A'的ascii码不是65吗?
搜索更多相关主题的帖子:
include
2005-11-20 14:59
燃冥
等 级:
新手上路
帖 子:6
专家分:0
注 册:2005-11-19
第
2
楼
得分:0
void main(void) -》 int main (void)
printf("%c,%d",u.c,u.i);
看输出什么了?
2005-11-20 15:26
大水牛
等 级:
新手上路
威 望:
1
帖 子:233
专家分:0
注 册:2005-11-21
第
3
楼
得分:0
以下是引用
燃冥
在2005-11-20 15:26:00的发言:
void main(void) -》 int main (void)
printf("%c,%d",u.c,u.i);
看输出什么了?
能告诉我你把MAIN 的VOID改成INT 干什么吗,这个是函数返回参数和内部没什么关系的
虽然现在的我什么都不明白,但总有一天,我将包容一切,让优秀变成一种习惯。。。。。。。。。。。。
2005-11-21 11:53
踏魔狼
等 级:
贵宾
威 望:
24
帖 子:1322
专家分:33
注 册:2005-9-22
第
4
楼
得分:0
这个是联合.只能有一个值是有效的.
=×&D o I p R e E n C g T l X&×=
2005-11-22 12:59
w7259521
等 级:
新手上路
帖 子:11
专家分:0
注 册:2005-11-22
第
5
楼
得分:0
2005-11-23 11:20
w7259521
等 级:
新手上路
帖 子:11
专家分:0
注 册:2005-11-22
第
6
楼
得分:0
你同时给了两个值
最后引用u.c时,它用的是int的最后一个字节的十六进制数
为43(01000011)
十进制67
2005-11-23 11:38
sydwgs
等 级:
新手上路
帖 子:4
专家分:0
注 册:2005-10-26
第
7
楼
得分:0
天书~~~~~~~~~~~~~~
今天我是新手~~~~~明天我乃高手~~~~~~
2005-11-23 14:04
w7259521
等 级:
新手上路
帖 子:11
专家分:0
注 册:2005-11-22
第
8
楼
得分:0
当执行u.c='A'时存储的是0000,0000,0100,0001注意后面的字节是65
当执行u.c=0x0143时存储的是0000,0001,0100,0011注意后面的字节是67
联合体是共用一块存储空间的即0000,0001,0100,0011将0000,0000,0100,0001覆盖,再引用u.c时读到的是0100,0011也就是67
2005-11-23 14:20
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-34314-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.052031 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved