C语从开发到现在一直都出现在人们的视野中,因为C语言不仅是许多编译语言开发的基础,它还是许多初学者第一个接触编程所用的语言。就连java之父也曾经说过C语言有太多令人觉得美妙的地方。可见C语言对于编程的重要性。下面我们来了解一下C语言的基础知识——强制转换。

强制转换类型

C语言的强制类型转换就是将一个类型的变量转换为另一种数据类型。强制转换的一般形式如下:

(类型说明符) (表达式)

打个比方:(double) a; 就是将a 转换为双精度类型。(int)(x+y)的作用就是将x+y 的结果转换为整型。但是在使用强制转换的时候要注意几个问题:

1)类型说明符以及表达式都要用括号括起来,如果是单个变量就可以不用括号。在上文的例子(int)(x+y) 中如果写成(int)x+y 的结果就是把x进行转换了以后再和y相加。

2)无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

下面我们看一个例子:

结果

从例子我么可以看到int 类型进行转换之后就变成了浮点类型。

我们再看一个实例,使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数:

结果:

在上面的例子我们要注意的是,因为这里的变量不是单独的,所以应该加括号的。而这里没有加,就变成了sum的值首先被转换为double 型,然后再除以sum1 。

在强制转换类型中我们还可以这样子使用:int 'A';这样子进行转换的结果是A的ascll值。

类型转换可以是隐式的,由编译器自动执行,也可以是显式的,通过使用强制类型转换运算符来指定。在编程时,有需要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。

整数提升

整数提升可以用于所有的操作数,下面说一说整数提升的规则:

1)在一个表达式中凡是可以使用整型的地方都可以使用char、short int或者整型位域的变量。

2)如果1)中的变量的原始类型的所有值都可以被int表示(没有造成值的丢失,就比如这种unsigned short提升为int的情况),那么原值被转换为int; 否则的话,转为unsigned int型。

下面看一个例子:

结果:

在这里,sum 的值为 98,因为编译器进行了整数提升,在执行实际加法运算时,把 'a' 的值转换为对应的 ascii 值。

常用的算术转换

在进行算术运算的时候,不同类型的数必须转换为统一类型的数据才能运算。常用的算术转换是隐式地把值强制转换为相同的类型。而编译器首先会进行整数提升,如果操作数类型不同,就会以表达式中最长类型为主,将其他类型均转换成该类型。

比如:若运算数中有double型或float型,则其他类型数据均转换成double类型进行运算。若运算数中最长的类型为long型.则其他类型数均转换成long型数。

类型层次图:

下面我们看一个例子:

结果:

在例子中c 先会被转换为整数,但是由于sum 是float 型,所以在这里就会用到算术转换,编译器将i 和c 转换为浮点数,并将他们相加。

小结一下,强制转换还是很好用的功能,强制转换之后并不会改变原来变量的类型,这个是要注意的。而算术转换也是编程的时候常用的一种方法,它可以方便的转换类型而不用自己对它进行转换。最后,希望本文能有所帮助,如果对C语言有兴趣的朋友可以在本网站中进行视频学习或者直接点击文中链接。

c语言验证算术类转换,C语言的强制转换你会用吗?相关推荐

  1. c语言char数字转int补位,关于char强制转换成int到底是用0还是用1补位的猜想与检验...

    关于char强制转换成int到底是用0还是用1补位的猜想与检验 最近学C语言发现char强制转换时值会完全不同,而且变化很大,于是决定写代码测试一下. 先检验一下char型的-3和3在内存中分别怎么表 ...

  2. 隐式转换和显式转换及强制转换的区别

    string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strTyp ...

  3. python如何强制转换数据类型_python数据类型强制转换实例详解

    如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号 2.list : 强制转换成列表""" 如果是字符串,会把每一个字符都单独作为一个元素放到新的列表中 如果 ...

  4. python如何强制转换数据类型,python数据类型强制转换的方法

    python数据类型强制转换的方法 发布时间:2020-06-22 16:43:25 来源:亿速云 阅读:101 作者:清晨 这篇文章将为大家详细讲解有关python数据类型强制转换案例,小编觉得挺实 ...

  5. python nonetype转换float_python数据类型的强制转换

    数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. Number类型的数据转换 强制转换为int 可以转换的数据类型 int 整型 float 浮点型 boo ...

  6. c语言计算机那类教,C语言教学中的兴趣驱动

    摘要:C语言因其自身的优点成为计算机教学的最佳语言.现有的C语言教材普遍存在着重语法.理论,轻应用.实践的情况,教学中也存在着内容定位不准.对上机实验重要性认识不够等问题.文中对这些现象进行了分析,提 ...

  7. java语言中的类可以_java 语言中的类

    类 一.类 类是具有相同性质的一类事物的总称, 它是一个抽象的概念. 它封装了一类对象的状态和方法, 是创建对象的模板. 类的实现包括两部分: 类声明和类体 类的声明 类声明的基本格式为: [ 访问权 ...

  8. java中子类与父类强制转换_java中父类强制转换成子类的错觉

    引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...

  9. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises03

    文章目录 20201015-成信大-C语言程序设计-20201学期<C语言程序设计B>C-trainingExercises03 P122 P708 P133 P135 P721 P735 ...

最新文章

  1. bash环境变量的相关内容
  2. 路由异常的起源-如何影响最终用户?——Vecloud微云
  3. F1 score的意义
  4. uni-app 手指左右滑动实现翻页效果
  5. 零配置 之Spring基于Java类定义Bean配置元数据
  6. 20162317 2016-2017-2 《程序设计与数据结构》第8周学习总结
  7. 写一函数,将两个字符串连接
  8. mysql int的长度
  9. dlut-KFQ人工智能导论答案1
  10. 视频号的商业想象空间,在前天更新后,会在以下3个方面
  11. 万万字详解自动驾驶、车路协同中的高精度地图
  12. a超链接锚点的设置和应用 三国演义
  13. OSError解决办法
  14. Latex Beamer 入门教程
  15. 读《七周七语言》,感悟其魂
  16. mac系统上最好用的3款epub阅读器
  17. 科学动画制作工具——Blender
  18. 四、Linux磁盘与文件系统管理
  19. 腾讯回应微信读书侵害用户信息;苹果称今年新iPhone将推迟数周发布;Julia 1.6.0 发布| 极客头条
  20. android 发送彩信监听,在Android中发送短信和彩信,监听短信并显示

热门文章

  1. 【优秀的图片后期编辑工具】Luminar 3.1 for Mac
  2. 网络编程(tcp和udp)
  3. vue表单验证填写判断身份证自动写入年龄性别和出生年月日
  4. PV_Summary
  5. 对萌新小白电脑运行速度变慢解决的方法get!٩( ‘ω‘ )و get!٩( ‘ω‘ )و
  6. 五虎将后传地图下载s.php下载,五虎将后传I下载-五虎将后传Iv3.0.26正式版[war3地图]--30天下载...
  7. python selenium xpath相对路径,绝对路径表达式包含什么,以什么开头,以什么结尾xpath具有css没有的属性是什么?xpath的坑有哪些?
  8. python爬取饿了么奶茶店外卖数据_奶茶外卖店铺单量太少?那是你忽略了很多细节...
  9. 深度学习笔记(51) 公式图形
  10. ppt取色器怎么取外面的颜色