首页 > 其他分享 >C语言:运算符1(混合运算和算数运算符)

C语言:运算符1(混合运算和算数运算符)

时间:2024-11-28 13:58:29浏览次数:12  
标签:优先级 运算 ++ C语言 运算符 算数 类型 表达式

各类数值型数据间的混合运算

整型、实型、字符型数据间可以进⾏混合运算,如:

10 - 'a' * 1.5 

运算时,参加运算的两个数据如果类型不同, 则⾸先将其类型转换成⼀致再运算,转换规则是: 将优先级低的类型转换到优先级⾼的类型,被称作 自动类型转换(小转大) 。⾃动类型转换的形式为:

大类型类型 变量名 = 小类型变量;

注意: 在混合运算过程中,系统所进⾏的类型转换并不改变原数据的类型,只是在运算过程中将其值变成 同类型后在运算。

C语⾔提供了 强制类型转换(大转小) 运算,可得到⼀个所需类型的数据,强制类型转换的形式为:

(类名名)(表达式)
----------------------------------------
小类型类型 变量名 = (小类型类型)大类型变量;

(double) a 将a的值转换成double类型

(int)(x+y) 将x+y的结果转换为int类型

(int)x+y 将x的值转换成int类型后与y进⾏相加

(float)(5%3) 将5%3的值转换成float类型

特别需要说明的是:在强制类型转换的过程中,并不改变原变量的类型,只是在运算过程中将其值转换类 型后再运算。

C语⾔运算符和C算术表达式

C运算符

C表达式

所谓表达式就是将操作对象用运算符连接起来的符合C语法规则的式子。(运算数 + 运算符 = 表达式)

C语言规定了运算符的优先级和结核性。在表达式求值时,按运算符的优先级别的高低次序执行。如果运算对象 两侧的运算符优先级别相同,如a+b+c,则按照规定的“结合方向”处理。

C语言运算符优先级

运算符类型

算术运算符

基本的算术运算符

+、- :正负值运算符(单目运算符)。

+、-、*、/、% :加减乘除取余运算符(双目运算符)

注意:进行除法运算的时候,除数是不能为0的。 这些算术运算符的运算顺序与数学上的运算顺序相同。

表达式和运算符的优先级与结核性

算术表达式:是指用算术运算符和括号将运算对象连接起来,符合C语言语法规则的式子。例如:

a * b / c - 1.5 + 'a'

表达式中各种运算符的运算顺序,必要时应添加括号,例如:

(a+b)/(c+d) != a+b/c+d

注意表达式中个运算对象的数据类型,特别是整型相除,C语⾔规定,两个整型相除,其结果仍为整型。例如:

7/6的值为1
4/7的值为0
(1/2)+(1/2)的值为0,而不是1

优先级与结核性:在表达式求解的时候,先按运算符的优先级级别高低次序执行。若一个运算对象两侧的运算 符的优先级相同,则按规定的结合方向处理。

各种运算符的结合方向:

① 算术运算符的结合方向:“自左向右”,即运算对象先与左边的运算符结合,例如:

a - b + c  // 先执行a - b,然后在执行 + c 运算

② 有些运算符的结合方向:“自右向左”,即运算对象先与右边的运算符结合,例如:

i++

③ 若一个运算符两侧的数据类型不同,会自动转换成同类型后进行计算。

自增++、自减--运算符

作用:使变量的值增1或者减1

结合方向:“自右向左”

++i,--i

表示在使用该运算符对象之前,先让自身增1或减1,然后再使用它,也就是使用增1或者减1后的值。先计算, 后赋值

例如:语句x = ++n;相当于以下两个语句的运算结果:n= n + 1;x=n

int n = 1; // n:1
int x = ++n; // x:2 等价于:n = n + 1; x = n

i++,i--

表示在使用该运算符对象之后,才让自身增1或减1,也就是先使用它的值,在让自身增1或者减1。先赋值,后计算

例如:语句x = n++;相当于以下两个语句的运算结果:x = n;n = n + 1

int n = 1; // n:1
int x = n++; // x:1 等价于:x = n; n = n + 1

总结:不管是++i还是i++,i自身都增1;同理不管是--i还是i--,i自身都减1,它们的不同之处在于赋值的先后顺序。

注意: ① 增1与减1运算符只适⽤于整型变量或字符型变量,⽽不能⽤于其他类型的变量 ② 增1与减1运算符不能⽤于常量或表达式,例如: --5 , (i+j)++ 等都是⾮法的。

更多即在主页更新,请持续关注……

标签:优先级,运算,++,C语言,运算符,算数,类型,表达式
From: https://blog.csdn.net/m0_58371281/article/details/144108613

相关文章

  • C语言:运算符2(赋值运算符)
    赋值运算符“=”称之为赋值运算符,其作用是将一个数据赋值给一个变量。如:a=5执行赋值运算的结果,是将右边的数据存入左边变量对应的内存单元中,赋值运算的顺序:由右向左赋值规则如果赋值运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为:实型→整型变量:舍弃⼩数部......
  • C语言 九宫格输入法
    假设有九宫格输入法键盘布局如下:[1,.?!][2ABC][3DEF][4GHI][5JKL][6MNO][7PQRS][8TUV][9WXYZ][0空]注意:中括号[]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字......
  • VScode配置C语言环境
    第一步下载VScode:VisualStudioCode-CodeEditing.Redefined第二步搜索下载VScode插件:​ C/C++Chinese上面两个插件安装完成后会提示重启VScode完成中文语言设置第三步配置C语言编译器:https://wwgn.lanzoul.com/iB4US2gj0ayh密码:8y95下载完成后解压,这里我选择保存......
  • python学习笔记09 python中的运算符
    上一篇记录中我们学习了介绍python中的进制、进制转换、原码反码补码这一篇我们来介绍python中的各类运算符及使用运算符操作数:参与运算的变量或者常量或具体的数值操作符:将参与运算的量连接起来的符号表达式:由操作数和操作符构成且符合python语法规范的式子,不同的操......
  • C语言笔记——数组
    一维数组C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。C中的数组1、数组的定义格......
  • C语言笔记--选择和循环语句
    分支语句ifswitch循环语句whilefordowhilegoto语句什么是语句C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。可......
  • [C语言]使用联合体和结构体 巧妙处理寄存器数据上位机读写的方法
    最近有在研究陀螺仪,里面就有对不同寄存器做配置,然后在读取一定地址的寄存器数据;发现这种逻辑工程上经常有;但是我接触到的代码基本都是通过一大堆宏定义去给他们寄存器地址命名,然后再自己读手册去搞配置;其实在性能上这个操作挺好的,但是我们似乎也没那么在意这几十个字......
  • C语言(运算符及位运算)
    运算符算术运算符基本的算术运算符+、-:正负值运算符(单目运算符)。+、-、*、/、%:加减乘除取余运算符(双目运算符)注意:进行除法运算的时候,除数是不能为0的。这些算术运算符的运算顺序与数学上的运算顺序相同。表达式和运算符的优先级与结合性算术表达式:是指用算术运算符......
  • C语言(流程控制)
    算法著名计算机科学家沃思提出了一个公式:数据结构+算法=程序数据结构:对数据的描述算法:对操作步骤的描述算法定义广义的说,未解决一个问题而采取的方法和有限的步骤,就称为“算法”例如:将⼤象放⼊冰箱的算法就可以如下描述:打开冰箱⻔-把⼤象装进去-关闭冰箱⻔算......
  • C语言 -运算符
    运算符各类数值型数据间的混合运算整型、实型、字符型数据间可以进行混合运算运算时,参加运算的两个数据如果类型不同,则首先将其类型转换成一致再运算,转换规则是:将优先级低的类型转换到优先级高的类型,被称作自动类型转换(小转大——不会损失数据)。大类型类型变量名=......