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

    文章

    7604

    浏览量

    136770
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49122

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

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

收藏 人收藏

    评论

    相关推荐

    学习C语言应从哪几方面着手

    看了此文后,我想对于您学习此语言一定有很大的帮助,同时也能了知晓如何用最短的时间学会C语言以及掌握C语言
    发表于 07-26 14:48 771次阅读

    C语言强制类型转化

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

    C语言中的基本数据类型

    C语言是非常重要的一门程序设计语言,学好C语言再去学习其他编程语言将变得很轻松,因为大部分
    发表于 04-26 17:33 2012次阅读
    <b class='flag-5'>C</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

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

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

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

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

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

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

    C程序的运行环境和C语言的数据类型

    ⒈ 实验目的⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。⑵ 通过运行简单的C程序,初步了解C源程序的特点。⑶ 掌握
    发表于 06-21 09:36 55次下载

    C语言精髓——指针详解

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

    分析C语言到底需要掌握哪些知识以及怎样去掌握

    C语言精髓点在哪? 学到多少东西才能够达到做项目的标准?学习的时候需要注意哪些细节点?疑问太多以至于压得自己喘不过气来。小编从项目的角度分析C语言
    的头像 发表于 01-29 10:16 5681次阅读

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

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

    关于C语言中的强制类型转换

    以下实例为STM32单片机使用寄存器进行操作的一个头文件中的代码因为直接对寄存器进行操作,也就是直接对地址中的数据进行操作,因为知道了寄存器所在的地址所以就强制把常量转换为地址,然后对地址进行操作
    发表于 01-13 15:20 2次下载
    关于<b class='flag-5'>C</b><b class='flag-5'>语言</b>中的<b class='flag-5'>强制</b><b class='flag-5'>类型</b><b class='flag-5'>转换</b>