c语言float转换为int_C语言的隐式类型转换和显示类型转换

3ea157c8917621035d07cac8c9e582c2.png

C语言是一种强类型语言,当使用一种类型的对象代替另外一种类型的对象进行操作时,必须首先进行类型转换。

类型转换的方式,一般可分为隐式类型转换和显示类型转换(也称为强制类型转换)。

1、隐式类型转换

隐式类型转换由编译器自动进行,不需要程序员干预。

隐式类型转换通常有两种情况:赋值转换和运算转换。

赋值转换:将一种类型的数据赋值给另外一种类型的变量时,发生隐式类型转换。比如:

int x = 1.23; // 1.23是double类型,先隐式转换为intfloat y = 66; // 66是int类型,先隐式转换为float

数据类型的提示:

28799a8b50abc6631d2b5ce715f72365.png
d1fc31f95562e2e1344c7fdd8eb29d24.png

在对变量赋值时,若等号两边的数据类型不同,需要把右边表达式的类型转换为左边变量的类型,这可能会导致数据失真(精度降低),所以隐式类型转换不一定是安全的。

61c715b11d1b92e2aede3525c09e6082.png

运算转换:C语言中不同类型的数据需要转换成同一类型,才可以进行计算。

字符型、整型、浮点型之间的变量通过隐式类型转换,可以进行混合运算(不是所有数据类型之间都可以隐式转换),转换规则如下:

  • 转换按数据长度增加的方向进行,以保证数据精度不降低。比如int类型和double类型相加时,int类型就会被隐式转换为double类型,然后再进行运算;
  • 在条件判断中,非布尔类型自动转换为布尔类型。算术类型的值为0,则转换为false;否则转换为true;
  • 类型转换不改变对象内存的值,当有符号类型转换为无符号类型时,其值可能发生变化。比如:
#include using namespace std;int main(){    int x = -1;    unsigned int y = x;    cout << "x: " << x << ", y: " << y << endl;      return 0;}

运行结果为:

x: -1, y: 4294967295

2、显示类型转换

隐式类型转换是编译器自动隐式进行的,需要在代码中体现,而显示类型转换由程序员明确指定,C语言显示类型转换也称为强制类型转换。

C语言显示类型比较简单,格式如下:

type var = (type)(expression);

比如下面这段代码:

#include using namespace std;int main(){    double x = (int)1.5 * 2.5;    cout << "x: " << x << endl;    double y = (int)(1.5 * 2.5);    cout << "y: " << y << endl;      return 0;}

运行结果为:

x: 2.5y: 3

其中,(int)1.5 * 2.5 是先对1.5进行强制类型转换,再和2.5相乘;

而(int)(1.5 * 2.5)通过括号提高优先级,先进行1.5 * 2.5的运算,再进行强制类型转换。

b31032dfca8ccdf03055d1e13235d420.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp 开发app_ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式

由于ASP.NET Core应用是一个同时处理多个请求的服务器应用&#xff0c;所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止。出于安全方面的考量&#xff0c;为了避免敏感信息的外泄&#xff0c;客户端在默认的情况下并不会得到详细的出错信息&#xff0c;这无疑会在…

美国半导体十年计划中的NO.1,模拟硬件究竟有什么价值?

来源&#xff1a; 脑极体中国半导体行业在集体过冬&#xff0c;美国也未必没有紧迫感。前不久&#xff0c;美国半导体行业协会&#xff08;SIA&#xff09;和半导体研究公司&#xff08;SRC&#xff09;就联合发布了一份题为“半导体十年计划”的报告&#xff0c;希望美国政府能…

【编程开发】Python---列表

ERROR&#xff1a;错误 waring&#xff1a;警告&#xff0c;还没到犯错的地步 print(r\n) r"字符串"&#xff0c;字符串里的所有字符都不转义 str "abcdef" 如果想隔一个取出来&#xff0c;str[0::2] 深浅拷贝 列表的内存存放 Python修改的变量只是修改了…

processing python模式_详解python之多进程和进程池(Processing库)

环境:win7python2.7 一直想学习多进程或多线程,但之前只是单纯看一点基础知识还有简单的介绍,无法理解怎么去应用,直到前段时间看了github的一个爬虫项目涉及到多进程,多线程相关内容,一边看一边百度相关知识点,现在把一些相关知识点和一些应用写下来做个记录. 首先说下什么是进…

不确定性的价值

来源&#xff1a; 混沌巡洋舰推荐一篇万字长文 聪大脑的预测性编码讲起&#xff0c;区分三种不确定性&#xff0c;最终对我们如何应对这个充满不确定的时代&#xff0c;给出启示。愿读完后&#xff0c;你能够更全面客观的理解生活中的随机性。霍金斯是一位计算机科学家(后来成为…

网站开启https后很慢_网站优化中哪些设置会影响蜘蛛的抓取?对网站SEO产生什么影响...

网站在优化中&#xff0c;要有一定的收录基础才能有更大的几率提升排名&#xff0c;并获得搜索引擎的喜爱。但在网站优化中难免会有一些细节没注意到而影响蜘蛛的抓取&#xff0c;下面就带大家一起了解一下。一、登录设置有些网站会设置注册账号的要求才能允许用户浏览网站&…

正则表达式提取器_C++11新特性7 - 正则表达式

C11 新增了正则表达式的标准库支持&#xff0c;本文简介 C 正则表达式的使用在 C 中使用正则表达式&#xff0c;和其它语言差别不大int main() {regex e("abc*");bool m regex_search("abccc", e);// 输出 yescout << (m ? "yes" : &quo…

智慧城市建设必须认真对待的几个问题(一):IPV6作为地址的问题

全文共计4384字&#xff0c;预计阅读时间9分钟来源 | 数据观&#xff08;转载请注明来源&#xff09;作者 | 陆宝华 李晋 张永红 李学良编辑 | 蒲蒲引言智慧城市已经热炒几年了&#xff0c;目前还在升温&#xff0c;并且一些做国际联网应用的大企业提出了“城市大脑”的概念。当…

linux open 头文件_linux下通过共享内存和mmap实现进程间通讯

前言最近在学习GNU/Linux内核&#xff0c;看到mmap的时候书上说&#xff1a;mmap/munmap接口函数是用户最常用的两个系统调用接口&#xff0c;无论是在用户程序中分配内存、读写大文件、链接动态库文件&#xff0c;还是多进程间共享内存&#xff0c;都可以看到mmap/munmap的身影…

TinyML:下一轮人工智能革命

来源&#xff1a;AI前线作者&#xff1a;Matthew Stewart译者&#xff1a;盖磊策划&#xff1a;陈思人工智能的一个趋势是正快速从“云端”走向“边缘”。TinyML 是在海量的物联网设备端微控制器上实现的人工智能&#xff0c;有望在未来几年内&#xff0c;成为人工智能在工业领…

springboot导入项目依赖报错_最详细的 Spring Boot 多模块开发与排坑指南

来源于公众未读代码 &#xff0c;作者达西呀创建项目创建一个 SpringBoot 项目非常的简单&#xff0c;简单到这里根本不用再提。你可以在使用 IDEA 新建项目时直接选择 Spring Initlalize 创建一个 Spring Boot 项目&#xff0c;也可以使用 Spring 官方提供的 Spring Boot 项目…

图书管理系统html_结自主可控数字化硕果,同方鼎欣推进基于OFD技术的数字档案管理系统研发...

01浅谈建立自主可控版式格式的重要性说起版式文档&#xff0c;相信大家首先想到的就是Adobe公司推出的PDF&#xff0c;这种格式的电子文档&#xff0c;其效果不因软硬件环境变化而变化&#xff0c;在版面、字体、字号方面可以与纸质文件保持一致&#xff0c;这就是版式文档的重…

联结你与万物的8种元素

本文经授权转载自《原理》微信公众号你不仅由元素构成&#xff0c;你其实就是元素。不同元素的原子在你的身体里&#xff0c;它们随你而动&#xff0c;它们与你一同经历成功的狂喜&#xff0c;一同承受失败的悲痛&#xff0c;也一同走过平淡的日常。当你吃下食物时&#xff0c;…

Spring中的用到的设计模式大全

spring中常用的设计模式达到九种&#xff0c;我们举例说明&#xff1a; 第一种&#xff1a;简单工厂又叫做静态工厂方法&#xff08;StaticFactory Method&#xff09;模式&#xff0c;但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数&#xff…

crontab 日志_聊聊老板让我删除日志文件那些事儿

一、背景老板&#xff1a;小白&#xff0c;刚才咱们的机器告警磁盘空间不足了&#xff0c;你去定位一下原因。我&#xff1a;(......空间不足碍我屁事儿)好的&#xff0c;马上定位我&#xff1a;老板&#xff0c;太多N天前的日志文件占用了太多空间。 老板&#xff1a;你感觉你…

【专家观点】刘经南院士:北斗+5G为何能引领新基建?

来源&#xff1a;智能研究院日前&#xff0c;“第四届全球未来出行大会&#xff08;GFM2020&#xff09;”在德清召开。本次大会旨在探讨未来的城市、未来的出行、未来的汽车如何为居民提供更加经济、便捷、安全、科技友好的新出行方式。在论坛的演讲中&#xff0c;中国工程院院…

ae中心点重置工具_(精品)AE从小白到大神之路(七)-AE动画—动效常见的设计方法...

动画——动效常见的设计方法一&#xff0e;基础动画&#xff1a;1.通过物体本身的旋转/缩放/位移/不透明度等基本属性来做的一些动效属于最基础的动画效果。二&#xff0e;路径动画&#xff1a;&#xff08;1&#xff09;修剪路径动画&#xff08;前面系列案例——下载提示完成…

css 透明度_如何使用CSS实现精美视频片头制作

借助CSS所提供的动画效果&#xff0c;旋转效果除了能够制作动画及网页页面元素&#xff0c;如按钮之外&#xff0c;还可以使用CSS实现精美的动态片头的制作。本文主要介绍CSS与HTML实现精美的动画片头制作实例。如何使用CSS实现精美片头制作CSS动态片头设计实例本例设计使用烟雾…

重磅盘点:过去8年中深度学习最重要的想法

原文&#xff1a;Deep Learning’s Most Important Ideas[1]作者&#xff1a;Denny Britz&#xff08;ML 研究员&#xff0c;Google Brain 前成员&#xff09;译者&#xff1a;REN深度学习是一个瞬息万变的领域&#xff0c;层出不穷的论文和新思路可能会令人不知所措。即使是经…

ActiveMQ 发送和接收消息

一、添加 jar 包 <dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.11.2</version> </dependency> 二、消息传递的两种形式 1、点对点&#xff1a;发送的消息只能被一个消…