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

只是引用的时候变成了浮点型,离开那个表达式,i还是整型。也就是说i的值是不可能被改变的。更不用说是存储空间了


学好C++
2007-10-29 19:26
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
类型是不能改变的.
做运算是也只是有个中间结果,但它不影响本身的类型.

倚天照海花无数,流水高山心自知。
2007-10-29 20:07
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
得分:0 
问题的本质:i的类型肯定是不会改变的,但并非所有的运算都会有中间结果,如:
int i = 0;
i = i + 1;
i++;
在i = i + 1;中,会产生中间结果,而i++则不会产生中间结果。
2007-10-29 20:28
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
那当然了.不在别的地方运算难道就变量i所占用的空间里计算啊.?那怎么可能.你看看数据结构就知道了.

2007-10-29 21:13
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用blackorchis在2007-10-29 20:28:43的发言:
问题的本质:i的类型肯定是不会改变的,但并非所有的运算都会有中间结果,如:
int i = 0;
i = i + 1;
i++;
在i = i + 1;中,会产生中间结果,而i++则不会产生中间结果。

那i++是什么?
它是怎么工作的?


倚天照海花无数,流水高山心自知。
2007-10-29 21:17
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
得分:0 
请问14楼,如果所有的计算都在别的地方进行,自增运算的优势在哪里呢?
2007-10-29 22:17
快速回复:[求助]小问题大疑惑——C类型转换
数据加载中...
 
   



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

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