| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1387 人关注过本帖
标题:[求助]小问题大疑惑——C类型转换
只看楼主 加入收藏
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
 问题点数:0 回复次数:15 
[求助]小问题大疑惑——C类型转换
在C语言中存在数据类型转换的问题,如:
int i = 1;
float f = 2.0, c;
c = i + f;
现假设在TURBO2下,int占两个字节,而float占四个字节,那么,在执行表达式c = i + f;时,i会转换成浮点型,是应该理解为i的值的拷贝转换成浮点型呢?还是应该理解为i的值转换成浮点型呢?因为如果是前者的话,变量i所占的存储空间不会变,如果是后者的话,则i所占的存储空间要扩展为四字节了。请大家多多指点!谢谢。

搜索更多相关主题的帖子: 类型 
2007-10-29 16:45
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
回复:(blackorchis)[求助]小问题大疑惑——C类型转...
该理解为i的值的拷贝转换成浮点型
你要是将i的类型变成FLOAT的话要加上强制类型转换的.(float)i;所以你想想就明白了.要是不信的话可以在加一句话
printf("%d\n",i);看看i的类型有没有变.

2007-10-29 16:51
苦中求乐
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-27
收藏
得分:0 
是你理解中的前者,i的类型不变

笨鸟先飞。可惜我既笨又懒!
2007-10-29 16:52
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 

那就加一句.是进行I值的类型的转换.


2007-10-29 17:14
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
强制型转化不会再次改变原变量的类型,因为他定义的类型是不能改变的。
还有转换的是double类型。

倚天照海花无数,流水高山心自知。
2007-10-29 17:14
苦中求乐
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-27
收藏
得分:0 
5楼斑竹说的对,强制转换也不能改变数据的类型。就象一个年轻人如果强行把他打扮成一个老人,但他本身还是一个年轻人嘛,年龄不变。
可用sizeof这个运算符验证它占用的字节空间。

笨鸟先飞。可惜我既笨又懒!
2007-10-29 17:27
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
你真叫板啊.改的是变量的值的类型.怎么拿人来比较呢?变量类型已经定义了就不能变了。至少我目前没有看到能改变变量类型的方法.

2007-10-29 17:54
苦中求乐
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-27
收藏
得分:0 
呵呵,7楼的老兄看来是性情中人。如有得罪请多多包含。

笨鸟先飞。可惜我既笨又懒!
2007-10-29 18:11
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
没有,我哪来那么大脾气啊.多多讨论.多多益善.

2007-10-29 18:34
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
得分:0 
谢谢各位的回复。我问题的另一面可能就是想说明在做运算时,一般情况下,是将变量的值取出来(即拷贝),在“别的地方”进行运算,是这样吗?
2007-10-29 19:23
快速回复:[求助]小问题大疑惑——C类型转换
数据加载中...
 
   



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

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