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

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

3天内不再提示

小编科普几种C语言中的运算符

Android编程精选 来源:编程学习总站 作者:写代码的牛顿 2021-06-21 16:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、加减乘除运算符

加减法运算符

我们先看一段代码演示加减法的使用。

poYBAGDRc_6APqHhAAB48PZAPp0382.jpg

输出结果是:

pYYBAGDRdAuAfc98AAAdmFQ4ZxU475.jpg

右边相加减的结果赋值给左边变量。

除法运算符

看一段演示除法运算符代码

pYYBAGDRdCiARZAoAABukFdj4VM198.jpg

输出结果是:

poYBAGDRdDOAQzBqAAAfIGKhVDQ305.jpg

从输出我们看到num3 = 0明显和我想要的结果不一样,而num4的结果完全符合我们的意料。

下面我们再看一段代码

pYYBAGDRdHSATGD1AABaO5GXDn4386.jpg

输出结果是:

poYBAGDRdH6AG9LxAAATTBY5f-0902.jpg

在代码里num3定义成一个整型(int),肯定不能存储小数,那么是因为num3是整型才会导致num3值只保留整数部分还是因为除法运算符"/"?我们再看一段代码,把num3定义成单精度浮点型(float),看看输出结果。

poYBAGDRdIiAITV0AABx08J9wMg993.jpg

输出结果:

pYYBAGDRdJKAFg33AAAc6HNl_Ao478.jpg

输出结果依旧是0,说明不是因为num3的数据类型造成输出结果变化,是因为除法运算符"/",两个整型相除,结果则是商向下取整。我们知道除法运算不仅仅是2个整型的运算,还可以是浮点型和整型,浮点型和浮点型之间的运算。我们先看一段代码整型和浮点型之间的除法运算。

pYYBAGDRdMeANZyDAAB0dJ18U20548.jpg

输出结果:

poYBAGDRdNGAayugAAAlS2nBsoE813.jpg

现在输出结果达到我们的想要了。那么现在我们看看除数和被除数两者都是浮点型呢?将会输出什么?先看这段代码

pYYBAGDRdN2ARJCNAAByM7LkMBM430.jpg

输出结果:

poYBAGDRdOmAaMdQAAAis5EIeRc141.jpg

结果完全符合我们的预期。说明两个数相除,只要任意一方是浮点型,得到的结果就是浮点型,保留小数部分。

现在我们总结一下除法运算符的结果的不同之处。

两个整数相除

结果是商向下取整

两个数相除,任意一方是浮点型

结果是商保留整数部分和小数部分

乘法运算符

乘法运算和除法运算结果有一个不同之处就是,乘法运算的结果不会发生截断,两个数都是整数,结果则是整数。两个数任意一方是浮点数,结果则是浮点数,但是我们通常情况下会遇到类似下面的代码。

pYYBAGDRdSOAUqd-AABZNKQxCCM153.jpg

输出结果是:

pYYBAGDRdSyAfY7eAAAaV5Y_1EQ148.jpg

我们不是说两个数相乘任意一方是浮点型,结果则是浮点型吗?为什么小数点后面的数没了?其实这是发生了截断,在C语言里浮点型强制转换成整型会发生数据截断,小数部分被丢弃了。那么我们怎么知道数据发生了截断呢?看看下面这段代码我们就知道了。

pYYBAGDRdTeAMF1yAABankKvWG4143.jpg

输出结果是:

poYBAGDRdUOAFmlsAAAXUnpjkZE636.jpg

说明整型和浮点型相乘得到的结果是浮点型!这里要注意一下10.2f后面带有f表明将10.2转换成单精度浮点型,如果不带f则不会输出"good!"字符串。

2、求余运算符

在C语言里求余运算符是%,下面我们看一段代码。

pYYBAGDRdXeABXh-AABPDKUs348694.jpg

输出结果:

poYBAGDRdYKACEBWAAAZeTG-O88624.jpg

在C语言里%只能对整型进行求余,任意一方是浮点型时,语法错误。

3、自增自减运算符

自增运算符

在C语言里自增运算符使用++,而自减运算符使用--,下面我们用实际代码分别看看自增自减和常规的加减法有什么不一样。

pYYBAGDRdY6AF_TNAAB_RI7CAXs304.jpg

输出结果是:

poYBAGDRdZiASU_qAAAp7toDgaE850.jpg

从输出结果我们可以知道,num1和num2第一次自增输出结果一样,说明前自增和后自增都可以对变量进行加1。那么第二次输出就有点不同了,虽然都进行了自增,但是num1输出3而num2输出2,最后一次输出num2则是3。这是因为前自增先对变量进行加1后再使用,而后自增则先使用变量再进行加1操作。

自减法运算符

自增和自减法运算符运算过程一样,区别则是一个做加1操作另外一个做减1操作。

4、逗号运算符

首先我们看一段代码

poYBAGDRdbuAGuZvAABUCzqYw9s037.jpg

这段代码的输出结果是:

poYBAGDRdcWAdMPdAAAYfcKGGoU119.jpg

从输出结果我们可以知道,逗号运算符是从左往右结合,先计算num2 = num1 + 1,此时num2= 2,再计算num2 = num1 + 2,此时num2 = 3,最后取num2的最终值加1的结果赋值给s。

责任编辑:lq6

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

    关注

    183

    文章

    7646

    浏览量

    146174
  • 运算符
    +关注

    关注

    0

    文章

    173

    浏览量

    12163

原文标题:C语言入门基础之运算符详解

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    c语言中的代码优化

    能够提升算法效率。由于乘除运算指令周期一般比移位运算大。C语言运算除了能够提升运算效率外,在嵌
    发表于 01-12 09:45

    C语言主要特点

    ,源程序短,因此输入程序时工作量少。 2.运算符丰富,C语言运算符包含的范围很广泛,共有34种运算符
    发表于 01-05 07:41

    请问C语言中整形溢出的解决方法有哪些?

    C语言中整形溢出的解决方法有哪些?
    发表于 12-29 07:33

    单片机c语言中定义字节怎么定义?

    定义位可以用***it但是定义字节呢?还有就是比如汇编中的DPTR的DPH和DPL在c语言中怎样定义的呢?
    发表于 12-29 06:32

    请问C语言中整形溢出会产生哪些异常行为?

    C语言中整形溢出会产生哪些异常行为?
    发表于 12-26 07:05

    请问C语言中整形溢出对哪些应用场景影响较大?

    C语言中整形溢出对哪些应用场景影响较大
    发表于 12-24 08:24

    Typedef在C语言中的应用

    Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: #define dPS struct s * typedef
    发表于 12-22 13:53

    C语言中可以嵌套汇编语言吗?

    请问C语言中可以嵌套汇编语言吗?
    发表于 12-15 08:14

    布尔表达式和零值比较处理

    结果是否是负值,Z标志表示结果是否是0。 C语言中,处理器中的N和Z标志位与下面的指令联系在一起:有符号关系运 算x<0,x>=0,x==0,x!=0;无符号关系运算x
    发表于 12-12 06:16

    C语言的常量介绍

    、-13; 实型常量:13.33、-24.4; 字符常量:‘a’、‘M’ 字符串常量:”I love china!” 在C语言中,可以用一个标识来表示一个常量,称之为符号常量。符号常量在使用之前必须先
    发表于 11-24 07:12

    C语言宏拼接运算符典型使用

    C语言中,##运算符(称为[size=16.002px]标记拼接运算符)用于宏定义中将两个标记(token)拼接成一个新的标记。它在预处理阶段处理,常用于动态生成变量名、函数名或类型
    发表于 11-20 08:27

    第4章 C语言基础以及流水灯的实现(4.3 4.4)

    4.3 C语言基本运算符 小学数学学过加、减、乘、除等运算符号以及四则混合运算,而这些运算符号在
    的头像 发表于 10-29 15:30 439次阅读

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    C语言精彩编程百例-364页

    内容提要 C是一种通用的程序设计语言,它包含了紧凑的表达式、丰富的运算符集合、现代控制流以及数据结构等四个部分。C语言功能丰富,衣达能力强,
    发表于 06-13 17:28

    《ESP32S3 Arduino开发指南》第三章 C/C++语言基础

    boolean类型。它的值只有两个:false(假)和true(真)。Boolean类型会占用1字节的内存空间。3.2 运算符 C/C++语言中有多种类型的
    发表于 06-10 09:20