社区
C语言
帖子详情
关于C语言自动转换的问题
pang123hui
2009-10-13 11:54:57
今天在看一本C语言书时,看到这么一句话,是关于数值类型自动转换的,
即当遇到short ,char时,系统一律将其转换为int 参与运算
当遇到float时,系统一律将其转换为 double参与运算
那么,如果是这样的话,short,char和float 还有什么存在的意义呢?
我们程序员在写程序的时候,直接定义为int 和double不就可以了吗?
感谢回答
...全文
77
7
打赏
收藏
关于C语言自动转换的问题
今天在看一本C语言书时,看到这么一句话,是关于数值类型自动转换的, 即当遇到short ,char时,系统一律将其转换为int 参与运算 当遇到float时,系统一律将其转换为 double参与运算 那么,如果是这样的话,short,char和float 还有什么存在的意义呢? 我们程序员在写程序的时候,直接定义为int 和double不就可以了吗? 感谢回答
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pang123hui
2009-10-14
打赏
举报
回复
[Quote=引用 4 楼 supermegaboy 的回复:]
引用 3 楼 pang123hui 的回复:
引用 2 楼 supermegaboy 的回复:
那么,如果是这样的话,short,char和float 还有什么存在的意义呢?
我们程序员在写程序的时候,直接定义为int 和double不就可以了吗?
----------------------------------------------------------
类型的多样性是为了满足不同用户的需求。我只需要一个char的空间,为什么要用一个int的空间去定义?显然是浪费。
但类型提升不是因为用户需求,而是效率需求。short、char、float这些东西是语言对内存操作的不同抽象,是语言的高级特性,但对一个程序的执行效率而言却是有害的,只操作一种类型显然比操作多种类型更方便。类型提升就是提高程序运行效率的措施。
这样的话,可不可以理解为系统是牺牲空间来换取时间呢?
看来这应该是因为计算机存储空间的不断增加而在C99标准中新加入的吧(仅仅是我的猜测,未求证)
进行类型提升时,并没有改变原来对象的空间,而是产生一个可以随时抛弃的临时对象。没有空间换时间的问题。
[/Quote]
哦,我明白了,也就是说仅仅改变一下类型名称,使其统一,方便系统操作,提高效率是吧
飞天御剑流
2009-10-14
打赏
举报
回复
[Quote=引用 3 楼 pang123hui 的回复:]
引用 2 楼 supermegaboy 的回复:
那么,如果是这样的话,short,char和float 还有什么存在的意义呢?
我们程序员在写程序的时候,直接定义为int 和double不就可以了吗?
----------------------------------------------------------
类型的多样性是为了满足不同用户的需求。我只需要一个char的空间,为什么要用一个int的空间去定义?显然是浪费。
但类型提升不是因为用户需求,而是效率需求。short、char、float这些东西是语言对内存操作的不同抽象,是语言的高级特性,但对一个程序的执行效率而言却是有害的,只操作一种类型显然比操作多种类型更方便。类型提升就是提高程序运行效率的措施。
这样的话,可不可以理解为系统是牺牲空间来换取时间呢?
看来这应该是因为计算机存储空间的不断增加而在C99标准中新加入的吧(仅仅是我的猜测,未求证)
[/Quote]
进行类型提升时,并没有改变原来对象的空间,而是产生一个可以随时抛弃的临时对象。没有空间换时间的问题。
pang123hui
2009-10-14
打赏
举报
回复
[Quote=引用 2 楼 supermegaboy 的回复:]
那么,如果是这样的话,short,char和float 还有什么存在的意义呢?
我们程序员在写程序的时候,直接定义为int 和double不就可以了吗?
----------------------------------------------------------
类型的多样性是为了满足不同用户的需求。我只需要一个char的空间,为什么要用一个int的空间去定义?显然是浪费。
但类型提升不是因为用户需求,而是效率需求。short、char、float这些东西是语言对内存操作的不同抽象,是语言的高级特性,但对一个程序的执行效率而言却是有害的,只操作一种类型显然比操作多种类型更方便。类型提升就是提高程序运行效率的措施。
[/Quote]
这样的话,可不可以理解为系统是牺牲空间来换取时间呢?
看来这应该是因为计算机存储空间的不断增加而在C99标准中新加入的吧(仅仅是我的猜测,未求证)
飞天御剑流
2009-10-14
打赏
举报
回复
那么,如果是这样的话,short,char和float 还有什么存在的意义呢?
我们程序员在写程序的时候,直接定义为int 和double不就可以了吗?
----------------------------------------------------------
类型的多样性是为了满足不同用户的需求。我只需要一个char的空间,为什么要用一个int的空间去定义?显然是浪费。
但类型提升不是因为用户需求,而是效率需求。short、char、float这些东西是语言对内存操作的不同抽象,是语言的高级特性,但对一个程序的执行效率而言却是有害的,只操作一种类型显然比操作多种类型更方便。类型提升就是提高程序运行效率的措施。
pang123hui
2009-10-14
打赏
举报
回复
[Quote=引用 6 楼 supermegaboy 的回复:]
原来的类型并没有改变
char a;
int i;
......
i = a + 1;
之后,a的类型并没有改变,而是从a产生一个已提升的临时对象,用该临时对象参与加1运算。但a还是a,类型和空间都没有改变。
[/Quote]
恩,非常感谢回答,谢谢
飞天御剑流
2009-10-14
打赏
举报
回复
原来的类型并没有改变
char a;
int i;
......
i = a + 1;
之后,a的类型并没有改变,而是从a产生一个已提升的临时对象,用该临时对象参与加1运算。但a还是a,类型和空间都没有改变。
mstlq
2009-10-13
打赏
举报
回复
存放的时候……
内存是要钱的……
c to java
转换
工具
该软件可以把
c语言
文件
转换
为java语言文件
220个经典
C语言
源码
220个经典
C语言
源码 从简单到难的220来个经典C程序 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(
自动
柜员机)界面 012 用一维数组统计学生成绩 013 用二维数组实现矩阵转置 014 求解二维数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的
转换
019 判断回文数 020 求数组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较整数大小 023 指向数组的指针 024 寻找指定元素的指针 025 寻找相同元素的指针 026 阿拉伯数字
转换
为罗马数字 027 字符替换 028 从键盘读入实数 029 字符行排版 030 字符排列 031 判断字符串是否回文 032 通讯录的输入输出 033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 。。。。 。。。。
c语言
自动
类型
转换
规则,
C语言
类型
转换
的方法
C语言
类型
转换
的方法我们在编程序的时候,经常会出现不同类型的数据之间需要计算、赋值,必然会出现类型
转换
问题
。
C语言
的变量数据类型是可以
转换
的,
转换
的方法有两类,一种是
自动
转换
,一种是强制
转换
。
自动
转换
这种
转换
发生在不同数据类型的量混合运算或赋值时,由编译系统
自动
完成。
自动
转换
遵循以下规则:1,若参与运算量的类型不同,则先
转换
成同一类型,然后进行运算。,2,
转换
时按数据长度增加的方向进行,以保证精度...
C语言
自动
类型
转换
C语言
自动
类型
转换
c语言
如何
自动
转换
,
c语言
中的
自动
类型
转换
c语言
中的
自动
类型
转换
同一句语句或表达式如果使用了多种类型的变量和常量(类型混用),C 会
自动
把它们
转换
成同一种类型。以下是
自动
类型
转换
的基本规则:1. 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会
自动
转换
成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsi...
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章