搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请大虾帮忙看下这段代码,我怎么觉得这个结果不对啊,整型存储单元不是4吗?
标题:
请大虾帮忙看下这段代码,我怎么觉得这个结果不对啊,整型存储单元不是4吗? ...
只看楼主
qjunshen
等 级:
新手上路
帖 子:20
专家分:0
注 册:2010-5-11
结帖率:
75%
楼主
已结贴
√
问题点数:20 回复次数:11
请大虾帮忙看下这段代码,我怎么觉得这个结果不对啊,整型存储单元不是4吗?
#include<stdio.h>
main()
{
int a,b,c;
double d=38.4;
a=sizeof(a);
b=sizeof(d);
c=(int)&d;
printf("a=%d\nb=%d\nc=%d\nd=%g",a,b,c,d);
getch();
}
搜索更多相关主题的帖子:
整型
单元
代码
结果
2010-08-13 11:41
liuzhengshen
等 级:
论坛游侠
帖 子:83
专家分:141
注 册:2010-4-23
第
2
楼
得分:0
#include<stdio.h>
int main(void)
{
int a,b,c;
double d=38.4;
a=sizeof(a);
b=sizeof(d);
c=(int)d;
printf("a=%d\nb=%d\nc=%d\nd=%g\n",a,b,c,d);
return 0;
}
2010-08-13 11:50
liuzhengshen
等 级:
论坛游侠
帖 子:83
专家分:141
注 册:2010-4-23
第
3
楼
得分:0
你那&取地址加上是什么意思,怎么能把d的地址给c变量呢,不要加&去地址符号
2010-08-13 11:52
erikyo
等 级:
蜘蛛侠
威 望:
2
帖 子:270
专家分:1154
注 册:2010-6-10
第
4
楼
得分:0
#include<stdio.h>
main()
{
int a,b,c;
double d=38.4;
a=sizeof(a); //计算int型整数的长度,并赋值给a,根据编译器的不同可能是2或者4,现在大部分是4
b=sizeof(d); //计算double型数据d的长度并赋值给b,一般为8
c=(int)&d; //&d表示数据d其实地址,强制转换成int类型的数据,然后复制给c。
printf("a=%d\nb=%d\nc=%d\nd=%g",a,b,c,d);//输出abcd的值
getch();
}
如果你不确定,可以加一条打印&d值的表达式
printf("&d=%d\n",&d);
你会发现他和c是一样的。
2010-08-13 12:06
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
5
楼
得分:0
这个程序哪和楼主想的不一样呀?楼主也没说清楚……
你应该把你想的什么样,和执行結果什么样都说一下。我也好知道你哪不懂。
2010-08-13 13:53
qjunshen
等 级:
新手上路
帖 子:20
专家分:0
注 册:2010-5-11
第
6
楼
得分:0
以下是引用
pangding
在2010-8-13 13:53:37的发言:
这个程序哪和楼主想的不一样呀?楼主也没说清楚……
你应该把你想的什么样,和执行結果什么样都说一下。我也好知道你哪不懂。
其实我想知道,整型在我看到的书上说是需要4字节,但我运行这个程序显示的却是2个字节,这是怎么回事?或者说区别是什么?为什么有的整型存储需要2字节有的需要4字节?
2010-08-14 18:18
sdmscu
等 级:
论坛游民
帖 子:32
专家分:15
注 册:2010-7-7
第
7
楼
得分:0
回复 4楼 erikyo
按照你说的 输出&d
和c 不一样啊
输出结果如下:
a=4
b=8
c=3078424
d=1.50294e-317
2010-08-14 20:53
crazysand
等 级:
论坛游民
帖 子:3
专家分:24
注 册:2010-8-14
第
8
楼
得分:20
回复 6楼 qjunshen
这个和操作系统有关系,因为你的机器是16位操作系统,整数类型占2个字节,所以int a;后sizeof(a)是2。如果你的机器是32位操作系统,那么整形是4个字节。
2010-08-14 22:31
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
9
楼
得分:0
看来楼主用的 TC……
2010-08-14 22:40
燕强
等 级:
论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
第
10
楼
得分:0
学习了
2010-08-15 17:32
12
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-315585-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.243560 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved