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

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

下面我们看一个例子:

92ce0ac24bfea2bd0e5f63b3d8937741.png

结果

6a7f7c077c644d59249d76d4b415e6a0.png

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

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

b71f3726aa7d0d291458e5da8cb23df9.png

结果:

c67046de31aee24616c9720fae3afda9.png

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

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

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

整数提升

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

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

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

下面看一个例子:

775abf828f94fc9023cb69a83ea13a65.png

结果:

8058b2f3955f2d805d38886fa70471ec.png

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

常用的算术转换

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

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

类型层次图:

下面我们看一个例子:

b246949f580fccc3fd594c3a3f9829ef.png

结果:

5b53522d799f90bb515b11c975b7f362.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值