0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言如何掌握强制类型转换的精髓

单片机与嵌入式 来源:单片机与嵌入式 2024-02-26 11:00 次阅读

强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:

(type_name) expression

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

#include int main()

{ int sum = 17, count = 5;

double mean; mean = (double) sum / count;

printf("Value of mean : %fn", mean ); }

当上面的代码被编译和执行时,它会产生下列结果:

Value of mean : 3.400000

6b06b9ce-d2c5-11ee-a297-92fbcf53809c.png

#include int main()

{ int i = 17;

char c = 'c'; /* ascii 值是 99 */ int sum; sum = i + c;

printf("Value of sum : %dn", sum ); }

当上面的代码被编译和执行时,它会产生下列结果:

Value of sum : 116

6b2367f4-d2c5-11ee-a297-92fbcf53809c.png

6b34168a-d2c5-11ee-a297-92fbcf53809c.png

常用的算术转换不适用于赋值运算符、逻辑运算符 && 和 ||。让我们看看下面的实例来理解这个概念:

#include int main(){ int i = 17;

char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c;

printf("Value of sum : %fn", sum ); }

当上面的代码被编译和执行时,它会产生下列结果:

Value of sum : 116.000000

在这里,c 首先被转换为整数,但是由于最后的值是 double 型的,所以会应用常用的算术转换,编译器会把 i 和 c 转换为浮点型,并把它们相加得到一个浮点数。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128790
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48625

原文标题:C语言中的强制类型转换

文章出处:【微信号:单片机与嵌入式,微信公众号:单片机与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言强制类型转化

    为何要在这里提强制类型转换呢,测试代码可以看到编译器会报很多警告,意思是告诉程序员数据类型不匹配,虽然并不影响程序的正确运行,但是很多警告总会让人感到难受。因此为了告诉编译器代码这里没
    的头像 发表于 09-09 08:58 2135次阅读
    C<b class='flag-5'>语言</b>中<b class='flag-5'>强制</b><b class='flag-5'>类型</b>转化

    JAVA语言的数据类型转换

    JAVA语言的数据类型转换很多场合需要用到类型转换。例如,要把一个整型变量作为字符型变量来使用,就需要使用
    发表于 12-06 00:30

    TCP中强制类型转换

    这是完整程序第一个和第二个强制类型转换都有什么用啊我加了显示控件,但是显示乱码求指点~~~
    发表于 04-15 19:42

    跟着狄泰唐老师的C语言课程学习的笔记之类型转换

    1.类型之间的转换C语言中的数据类型可以进行转换A.强制
    发表于 05-22 15:49

    强制类型转换问题

    本帖最后由 applevs 于 2017-5-24 23:03 编辑 char*强制转换为short*后,每两个字节组成一个新的short类型,由于电脑是小端存储,低字节在前,所以组成的short数据是[1][0][3][
    发表于 05-24 22:44

    基础:stateflow中变量的强制类型转换

    使用:例:我定义了一个变量speed作为输出,某时刻指定speed=0,当我把speed改为uint8类型,就报错误,找了一阵没找到方法,就放弃了。今天在看别的帖子是发现了强制类型转换
    发表于 10-29 10:42

    请问C6000数据强制类型转换怎么写?

    论坛里的大拿们:有谁能指导一下,C6000的话,想做强制数据转换,该怎么写,按照普通C的语法写,编辑器报错啊,是有专门的指令了吗?谢谢
    发表于 09-17 08:11

    C语言指针必须要进行强制类型转换

    进行后续的数据访问,那么为什么不直接把右值指针的地址给左值指针,(正如我第一句所说的,都是四字节不会丢失数据)而要进行强制类型转换呢?而且疑问处的代码去掉(char *),在VC++6.0还有多版的
    发表于 03-06 04:14

    c语言程序设计案例教程

    c语言程序设计案例教程篇一下面让我们看一下如何学习C语言。了解C语言的特点和有关概念:如
    发表于 07-20 07:25

    C语言中int型强制类型转换成short型的溢出问题怎么解决?

    如何判断STM32编码器模式中电机的正反转?C语言中int型强制类型转换成short型的溢出问题怎么解决?
    发表于 10-19 06:59

    C语言的数据基本类型分为哪几种

    今天闲着无聊把书翻看一遍,收获颇丰。目录1、数据类型基本类型数据长度强制类型转换bit强制
    发表于 02-25 06:35

    清除labview的强制类型转换的缓存

    请问如何将labview的强制类型转换的缓存如何清除?我在使用Picture to IMAQ image 官方vi时,如果运行时间过久,视频流中的图片过多,还原像素图.vi就会造成内存不足,
    发表于 02-15 20:36

    C语言精髓——指针详解

    C语言精髓——指针详解
    发表于 11-30 14:43 17次下载

    类型和弱类型语言有什么区别

    类型语言也称为强类型定义语言。是一种总是强制类型定义的语言
    发表于 12-04 15:45 2.4w次阅读
    强<b class='flag-5'>类型</b>和弱<b class='flag-5'>类型</b>的<b class='flag-5'>语言</b>有什么区别

    强制类型转换是把变量从一种类型转换为另一种数据类型

    类型转换可以是隐式的,由编译器自动执行,也可以是显式的,通过使用强制类型转换运算符来指定。在编程时,有需要
    的头像 发表于 11-12 14:59 9422次阅读