C语言进阶之路:理解不同数据之间的强制性转换

简介: C语言进阶之路:理解不同数据之间的强制性转换

前言


如何进行各个不同数据之间的强制性转换问题


提示:以下是本篇文章正文内容,下面案例可供参考


一、强制性转换是什么,需要怎样去操作!


介绍:强制性转换的一般形式为:(类型名)(表达式)

列如:int(6.6+9),表示将(6.6+9)转换为int型,即,将15.6转换为15,


二、使用步骤


1.引入库


对不同数据之间的强制性转换,简单代码如下(示例):



//不同数据之间的强制性转换 
#include <stdio.h>
int main ()
{
  char c='b';        //字符型:char
  short int i=2;      //短整型:short int )
  float f=2.1;double d1=0.0,d2=0.0;  //对d1,d2赋初始值0.0
  d2=(c/i)-(f-d1)+(f*i);    //对d2进行赋值
  printf("%ld,%lf\n",(long)d2,d2);   //输出(long)d2,d2,对输出结果进行比较
  return 0;
}


2.读入数据


重要代码如下(示例):


char c='b';        
  short int i=2;      //短整型:short int )
  float f=2.1;double d1=0.0,d2=0.0;      //对d1,d2赋初始值0.0
  d2=(c/i)-(f-d1)+(f*i);         //对d2进行赋值
  printf("%ld,%lf\n",(long)d2,d2);     //输出(long)d2,d2,对输出结果进行比较


运行结果如图所示:

0a2653c851af460fa595bd959398a8f1.png


该处该处的代码尤为重要;


具体解析,如下


对上述代码进行解析:d2=(c/i)-(f-d1)+(f*i);


1,在进行c/i运算时,要将c和i都转换为int型进行计算,:84/2,得到的结果为42,结果为int 型

2.在进行f-d1运算时候,d1为double(双精度浮点型),因此,要将f转换为double类型进行运算,其运算结果为2.1,也为double类型。

3.将c/i的结果与f-d1的结果进行运算,需要将前者的结果49从int转换为double,结果为49.6,仍为double类型。

4.进行f*i 运算,一个为float(单精度浮点型)一个为int(整型);将i转换为float然后进行运算,结果为4.2,为float类型,

5.最后结果进行计算:49.6+4.2,需要将4.2转换为double类型,最后输出结果。

##在输出语句中,首先将double类型的d2强制性转换为long类型然后输出,转换的结果就是舍弃了d2的小数位,然后输出d2的原始值。

***注意:***在进行数据类型转换时,只是将变量的值进行了转换,而变量的类型并没有改变。


(1).(int)x+y是指将x转换为int(整型)然后与y相加;

int(x+y)是指将x+y的值转换为(int)整型。

(2).表达式为变量时不加()。


谏言时刻,请同僚进行斧正


相关文章
|
2天前
|
存储 C语言
C语言进阶---------作业复习
C语言进阶---------作业复习
|
2天前
|
存储 Linux C语言
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-2
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
2天前
|
自然语言处理 Linux 编译器
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-1
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
2天前
|
存储 编译器 C语言
C语言进阶第十课 --------文件的操作-1
C语言进阶第十课 --------文件的操作
|
2天前
|
存储 程序员 C语言
C语言进阶第九课 --------动态内存管理-2
C语言进阶第九课 --------动态内存管理
|
2天前
|
编译器 C语言
C语言进阶第九课 --------动态内存管理-1
C语言进阶第九课 --------动态内存管理
|
2天前
|
C语言
C语言进阶第八课 --------通讯录的实现
C语言进阶第八课 --------通讯录的实现
|
7天前
|
存储 算法 C语言
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
|
7天前
|
存储 编译器 C语言
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
C语言基础知识:数据在内存中的存储解析(整数,浮点数)
|
9天前
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
14 0