| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:简单程序,但结果就不一样,求解
只看楼主 加入收藏
qq604911716
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2014-9-26
结帖率:100%
收藏
 问题点数:0 回复次数:5 
简单程序,但结果就不一样,求解
为什么最后的d的输出是一堆数字!!




程序代码:
#include <stdio.h>
float main(void)
{
    int a;
    long b;
    float e;
    double d;
    printf("\nint a:%.2f\nlong b:%.2f\nfloat e:%.2f\ndouble d:%.2f",sizeof(a),sizeof(b),sizeof(e),sizeof(d));
    
}
2014-09-26 17:46
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
sizeof是啥意思?

梦想拥有一台龙芯3A-4000
2014-09-26 17:51
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
sizeof()函数返回的是整数

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-26 18:58
LD199
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:18
专家分:46
注 册:2013-10-12
收藏
得分:0 
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
2014-09-26 19:32
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
简单说说:
sizeof()函数返回的是()里面的类型的字节长度值,
1:它不会对()里面的表达式求解
2:返回类型是 size_t 类型,是char类型的一种 可以当成短整形来用
3: int -> double 或者 int -> float在printf里面是不安全转换
   这种情况会发生强制拼凑成float类型的数据来输出

  所以输出的结果是不可预料的。 假设本来int只有2个字节,float有 4个 强制非法转换时就会在内存相应位置上
 左右拼凑,凑够4个字节来输出。
4: 如果不想发生强制非法转换,一定要留意 适当的时候加上int(sizeof(int))  或者 float(sizeof(int))
或者 (float)sizeof(int)
2014-09-26 20:31
悟也执迷
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2014-9-27
收藏
得分:0 
干嘛用float main呢?
输出整型干嘛不用%d?
2014-09-27 22:01
快速回复:简单程序,但结果就不一样,求解
数据加载中...
 
   



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

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