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).表达式为变量时不加()。


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


相关文章
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
376 0
|
5月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
1月前
|
存储 C语言 C++
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
|
1月前
|
存储 C语言
深入C语言内存:数据在内存中的存储
深入C语言内存:数据在内存中的存储
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
2月前
|
C语言
C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解
本文详细介绍了C语言中的数据与数据类型,包括常量、变量、表达式和函数等内容。常量分为整型、实型、字符型和字符串常量,其中整型常量有十进制、八进制和十六进制三种形式;实型常量包括小数和指数形式;字符型常量涵盖常规字符、转义字符及八进制、十六进制形式;字符串常量由双引号括起。变量遵循先定义后使用的规则,并需遵守命名规范。函数分为标准函数和自定义函数,如`sqrt()`和`abs()`。表达式涉及算术、赋值、自增自减和逗号运算符等,需注意运算符的优先级和结合性。文章还介绍了强制类型转换及隐式转换的概念。
|
3月前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
53 15
|
3月前
|
C语言
【C语言】在限制定条件下数据移动
【C语言】在限制定条件下数据移动
38 1
|
3月前
|
存储 C语言
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
105 4
|
3月前
|
存储 小程序 C语言
C语言数据的存储(内含百度笔试题)
C语言数据的存储(内含百度笔试题)
41 4