C语言几种简单的运算符

C语言的运算符分为算术运算符,赋值运算符,逗号运算符等等,在此只讨论列出的三种运算符。

一  在讨论运算符前,先了解一些概念:

1.表达式的构成:运算符 和 操作数构成字符序列 =>表达式。

   注意:(1)表达式都是有值的

              (2)表达式都是有类型的

2.隐式类型转换:整型(包括int、short、long)和浮点型(包括float、double)可以混合运算。字符型数据可以与整型通用(字符型数据本质上也是将字符对应的编码值储存在内存中),因此,整型、浮点型、字符型数据间可以混合运算。

例如:2+'q'+ 12.345*'p'是合法的。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。

转换的规则如图所示:

               (1)从右向左一定会转换。但c99标准下,float与float之间计算并不会转换到double类型进行计算。

               (2)从下向上,不同精度的类型混合运算时,此时,低精度往高精度转换 。

3.强制类型转换:将运算数强制转换为指定的类型,强制类型转换 不会影响原先运算数的值。

4.贪心原则: 从左到右逐个字符扫描,尽可能多的结合成c的运算符。如a+++++a => ((a++)++)+a,此时是不合法的。

二  算数运算符

算数运算符常用的有:+,-,*,/,%,++,--等,这些都是基本的数学概念,在此不过多赘述,只讨论%和自增自减的一些知识。

1.%

(1)注意点:小数不能做取模运算。

                        取模运算结果的符号取决于左操作数。

(2)常用的场景:判断奇偶数。

                               产生一定范围的数。如:a%n 会产生在 0~n-1 范围的数字。

2.++,--

(1)注意点:在参与其他运算中,a++ -> 先用后加,++a -> 先加后用

                        ++/--运算数必须是一个左值 (可以被修改左值),左值(lvalue)是指可以被定位的量。

                        且不要在一个表达式中,对同一个变量,连续多次自增自减(随编译器不同,结果也不同)

三  赋值运算符

赋值运算符常用的有=( 赋值运算,赋值运算可以进行链式操作,如a=b=c=1。),+=,-=,*=,/+,%=等。

1.不同精度类型间的混合赋值

(1)将double/float类型的值赋值给int/short/long/long long类型的变量,此时精度丢失。

(2)将长类型的值赋值给短类型的变量(如将int类型的值赋值给short类型的变量),此时发生高位截断,只能保留段类型大小的数据。

(3)将短类型的值赋值给长类型的变量(如将short类型的值赋值给int类型的变量),如果短类型的值有符号,长类型的高位将短类型的符号位扩展;如果短类型的值无符号,则长类型高位补0。

2.+=,-=,*=,/+,%=:如a += 1 => a =  a + 1。

四 逗号运算符(顺序求值运算符)

表达式1,表达式2,...,表达式n  => 最后一个表达式计算的结果充当逗号表达式的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值