C语言运算符

合集下载

C语言运算符

C语言运算符

C语⾔运算符1.算术运算符:+:就是把两个数据相加,得到和-:就是把两个数据相减,得到差*:就是把两个数据相乘,得到积/:就是把两个数据相除,得到商%:就是把两个数据相除,得到余数算术运算符的优先级:先算乘除,后加减,如果同样就从左往右依次运算,有括号的先算括号⾥⾯的2.复合运算符:由⼀个算术运算符和⼀个赋值运算符组成的符号,叫复合运算符复合运算符列表:+=:在原来的值的基础上加⼀个数-=:在原来的值的基础上减⼀个数*=:在原来的值的基础上乘⼀个数/=:在原来的值的基础上除⼀个数%=:在原来的值的基础上取余⼀个数3.⾃增⾃减预算符:⾃增(++):就是给⾃⼰的值再加1⾃减(--):就是给⾃⼰的值减1++(--)可以放在前⾯,也可以放在后⾯,效果都是⼀样,都是会给⾃⾝+1(-1)前缀++(--):会先⾃增(⾃减),后⽤⾃增(⾃减)后的值参与运算后缀++(--):会先⽤原来的值参与运算,再⾃增(⾃减)4.赋值运算符:=5.逗号运算符:语法:表达式1,表达式2,表达式3;逗号运算式的结果是最后⼀个表达式的结果特点:逗号运算式虽然结果是只取最后⼀个表达式的结果,但是前⾯的表达式也都会执⾏6.关系运算符:>:判断左边的表达式结果是否⽐右边的表达式结果⼤<:判断左边的表达式结果是否⽐右边的表达式结果⼩>=:判断左边的表达式结果是否⽐右边的表达式结果⼤或者等于<=:判断左边的表达式结果是否⽐右边的表达式结果⼩或者等于!=:判断左边的表达式结果是否⽐右边的表达式结果不相等==:判断左边的表达式结果是否⽐右边的表达式结果相等7.逻辑运算符:&&:逻辑与,读作并且表达式左右两边都为真,那么结果才为真⼝诀:⼀假则假||:逻辑或,读作或者表达式左右两边,有⼀个为真,那么结果就为真⼝诀:⼀真则真!:逻辑⾮,读作取反表达式的结果如果为假,就变成真,如果为真,就变成假⼝诀:真变假,假变真短路的情况:&&:左边如果为假,则右边短路(右边不会被执⾏)||:左边如果为真,则右边短路(右边不会执⾏)8.sizeof运算符:⽤法:sizeof(类型);sizeof(变量);sizeof(常量);可以计算这个类型或者变量或者常量占⽤的字节数注意:1.sizeof结果是unsigned long类型2.sizeof如果计算的是字符常量,那么会默认把字符转成ASCII值,然后计算出来就是4个字节,注意:只是常量,字符类型和字符变量还是1个9.三⽬运算符:也叫三元运算符。

c语言运算符

c语言运算符

c语⾔运算符1.运算符概述运算符是⼀种编译器执⾏特定的数学或逻辑操作的符号。

C语⾔提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符条件运算符其他运算符2.算术运算符算术运算符分为单⽬运算符和双⽬运算符,单⽬运算符表⽰只需要⼀个操作数,双⽬运算符需要两个操作数。

# 2.1 双⽬算术运算符1)+ :加法,把两个操作数相加2)- :减法,从第⼀个操作数中减去第⼆个操作数3)* :乘法,把两个操作数相乘4)/ :除法,第⼀个操作数除以第⼆个操作数5)% :求模(取余),第⼀个操作数除以第⼆个操作数所得余数双⽬运算符中,C语⾔中的加号、减号与数学中的⼀样。

乘号、除号因为ASCII符号中没有与数学中相对应的符号,所以使⽤星号表⽰乘号,使⽤斜线表⽰除号。

C语⾔中增加了⼀个求模运算符,是⽤来取余的。

需要注意的是,求模运算符的两个操作数必须是整型。

【实例6.1】加减乘除以及取模运算#include <stdio.h>int main(){int a = 21;int b = 10;int c;float d = 2.5;double e;int f = -21;int g = -10;c = a + b;printf(" a + b = %d\n", c);c = a - b;printf(" a - b = %d\n", c);c = a * b;printf(" a * b = %d\n", c);c = a / b;printf(" a / b = %d\n", c);e = a / d;printf(" a / d = %lf\n", e);c = a % b;printf(" a %% b = %d\n", c);c = a % g;printf(" a %% g = %d\n", c);c = f % b;printf(" f %% b = %d\n", c);c = f % g;printf(" f %% g = %d\n", c);return0;}执⾏以上程序,输出结果为:a +b = 31a -b = 11a *b = 210a /b = 2a / d = 8.400000a %b = 1a % g = 1f % b = -1f %g = -1实例解析:加、减与数学中的⼀样,其中需要说明的是除法以及取模运算。

C语言的运算符

C语言的运算符
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
整型表达式/整型表达式
双目运算符
4
+

表达式+表达式
左到右
双目运算符
-

表达式-表达式
双目运算符
5
<<
左移
变量<<表达式
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针变量
单目运算符

c语言45个标准运算符

c语言45个标准运算符

c语言45个标准运算符1.赋值运算符:用于将一个值赋给变量,例如:`=`。

2.算术运算符:用于执行基本的算术运算,例如:`+`(加法)、`-`(减法)、`*`(乘法)、`/`(除法)等。

3.自增和自减运算符:用于对变量进行加一或减一操作,例如:`++`(自增)、`--`(自减)。

4.关系运算符:用于比较两个值之间的关系,例如:`>`(大于)、`<`(小于)、`>=`(大于等于)、`<=`(小于等于)等。

5.相等运算符:用于判断两个值是否相等,例如:`==`(等于)、`!=`(不等于)。

6.逻辑运算符:用于连接多个条件的逻辑运算,例如:`&&`(逻辑与)、`||`(逻辑或)、`!`(逻辑非)。

7.位运算符:用于对二进制位进行操作的运算符,例如:`&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位取反)等。

8.移位运算符:用于将二进制位进行左移或右移操作,例如:`<<`(左移)、`>>`(右移)。

9.条件运算符(三元运算符):用于根据条件选择执行不同的操作,例如:`? :`。

10. sizeof运算符:用于返回一个变量或数据类型的字节大小,例如:`sizeof(int)`。

11.类型转换运算符:用于将一个变量强制转换为另一个数据类型,例如:`(int)`。

12.选择运算符:用于根据条件选择执行不同的操作,例如:`switch`、`case`。

13.逗号运算符:用于连接多个表达式,并且整个表达式的值为最后一个表达式的值,例如:`a, b, c`。

14.取地址运算符:用于获取变量的内存地址,例如:`&`。

15.解引用运算符:用于获取指针所指向的存储单元的值,例如:`*`。

16.条件表达式运算符:用于根据条件选择执行不同的操作,例如:`expression1 ? expression2 : expression3`。

c语言的运算符号

c语言的运算符号

C语言中包含多种运算符号,以下是一些常见的C语言运算符号:
1. 加法运算符(+):用于将两个操作数相加。

2. 减法运算符(-):用于将两个操作数相减。

3. 乘法运算符(*):用于将两个操作数相乘。

4. 除法运算符(/):用于将两个操作数相除。

5. 取模运算符(%):用于求两个操作数的余数。

6. 赋值运算符(=):用于将右边的值赋给左边的变量。

7. 递增运算符(++):用于将操作数加1。

8. 递减运算符(--):用于将操作数减1。

9. 比较运算符(>、<、>=、<=、==、!=):用于比较两个操作数的值。

10. 逻辑运算符(&&、||、!):用于进行逻辑运算。

11. 位运算符(&、|、^、~、<<、>>):用于对二进制位进行操作。

12. 条件运算符(?:):用于在三个操作数之间进行条件判断。

13. 类型转换运算符(float、double、int、char等):用于在各种数据类型之间进行转换。

14. sizeof运算符:用于获取操作数的字节大小。

以上是C语言中常用的运算符号,但不限于这些。

C语言还支持
其他一些运算符号,例如异或运算符(^)、算术运算符(+=、-=、*=、/=)等。

C语言运算符与表达式

C语言运算符与表达式

C语言运算符与表达式C语言是一种广泛使用的编程语言,它提供了丰富的运算符与表达式,用于进行各种数值计算和逻辑操作。

本文将介绍C语言中常用的运算符与表达式,以帮助你更好地掌握这门编程语言。

一、算术运算符C语言中的算术运算符包括加法运算符+、减法运算符-、乘法运算符*、除法运算符/和求余运算符%。

这些运算符可用于进行基本的数学运算。

例如:int a = 10;int b = 4;int sum = a + b; // 加法运算int difference = a - b; // 减法运算int product = a * b; // 乘法运算int quotient = a / b; // 除法运算int remainder = a % b; // 求余运算二、关系运算符C语言中的关系运算符用于比较两个值的大小关系,并返回一个布尔值(true或false)。

常用的关系运算符包括大于>、小于<、等于==、不等于!=、大于等于>=和小于等于<=。

例如:int a = 10;int b = 4;bool isGreater = a > b; // 大于运算bool isLess = a < b; // 小于运算bool isEqual = a == b; // 等于运算bool isNotEqual = a != b; // 不等于运算bool isGreaterOrEqual = a >= b; // 大于等于运算bool isLessOrEqual = a <= b; // 小于等于运算三、逻辑运算符逻辑运算符用于连接多个条件,并返回一个布尔值。

常用的逻辑运算符包括与运算符&&、或运算符||和非运算符!。

例如:int a = 10;int b = 4;int c = 6;bool result1 = a > b && b > c; // 与运算bool result2 = a > b || b > c; // 或运算bool result3 = !(a > b); // 非运算四、位运算符位运算符用于操作二进制数据中的位级别的操作。

C语言运算符号

C语言运算符号

C语言运算符号 1级优先级 左结合
() 圆括号
[] 下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符
2级优先级 右结合
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
- 负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符
3级优先级 左结合
* 乘法运算符
/ 除法运算符
% 取余运算符
4级优先级 左结合
+ 加法运算符
- 减法运算符
5级优先级 左结合
<< 左移运算符
>> 右移运算符
6级优先级 左结合
<、<=、>、>= 关系运算符
== 等于运算符
!= 不等于运算符
8级优先级 左结合
& 按位与运算符
9级优先级 左结合
^ 按位异或运算符
10级优先级 左结合
| 按位或运算符
11级优先级 左结合
&& 逻辑与运算符
12级优先级 左结合
|| 逻辑或运算符
13级优先级 右结合
? : 条件运算符
14级优先级 右结合
=赋值运算符
+ =加后赋值运算符
- =减后赋值运算符
*=乘后赋值运算符
/ =除后赋值运算符
% = 取模后赋值运算符
< <=左移后赋值运算符
>>=右移后赋值运算符
&=按位与后赋值运算符
^=按位异或后赋值运算符
|= 按位或后赋值运算符
, 逗号运算符。

C语言运算符大全

C语言运算符大全

C语言运算符大全C语言是一种广泛应用于系统编程和应用程序开发的编程语言。

运算符是C语言中用于执行各种数学运算、逻辑操作和位操作的符号。

本文将详细介绍C语言中的各种运算符。

1. 算术运算符- +:加法运算符,用于两个数相加。

- -:减法运算符,用于一个数减去另一个数。

- *:乘法运算符,用于两个数相乘。

- /:除法运算符,用于一个数除以另一个数。

- %:取模运算符,用于计算两个数相除的余数。

2. 关系运算符- ==:相等运算符,用于判断两个数是否相等。

- !=:不等运算符,用于判断两个数是否不相等。

- >:大于运算符,用于判断一个数是否大于另一个数。

- <:小于运算符,用于判断一个数是否小于另一个数。

- >=:大于等于运算符,用于判断一个数是否大于等于另一个数。

- <=:小于等于运算符,用于判断一个数是否小于等于另一个数。

3. 逻辑运算符- &&:逻辑与运算符,用于连接两个条件,当两个条件都为真时结果为真。

- ||:逻辑或运算符,用于连接两个条件,当两个条件至少有一个为真时结果为真。

- !:逻辑非运算符,用于取反一个条件,将真变为假,假变为真。

4. 位运算符- &:按位与运算符,将两个数的二进制表示进行按位与运算。

- |:按位或运算符,将两个数的二进制表示进行按位或运算。

- ^:按位异或运算符,将两个数的二进制表示进行按位异或运算。

- <<:左移运算符,将一个数的二进制表示向左移动指定的位数。

- >>:右移运算符,将一个数的二进制表示向右移动指定的位数。

5. 赋值运算符- =:简单的赋值运算符,将右边的值赋给左边的变量。

- +=:加法赋值运算符,将右边的值加到左边的变量上,并将结果赋给左边的变量。

- -=:减法赋值运算符,将右边的值从左边的变量中减去,并将结果赋给左边的变量。

- *=:乘法赋值运算符,将右边的值乘以左边的变量,并将结果赋给左边的变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言运算符无论是加减乘除还是大于小于,都需要用到运算符,在C语言中的运算符和我们平时用的基本上都差不多。

运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符。

大多数运算符都是二目运算符,即运算符位于两个表达式之间。

单目运算符的意思是运算符作用于单个表达式。

一、赋值运算符赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。

符号为‘=’。

这里并不是等于的意思,只是赋值,等于用‘==’表示。

注意:赋值语句左边的变量在程序的其他地方必须要声明。

得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为她它们出现在赋值语句的右边。

常数只能作为右值。

例如:count=5;total1=total2=0;第一个赋值语句大家都能理解。

第二个赋值语句的意思是把0同时赋值给两个变量。

这是因为赋值语句是从右向左运算的,也就是说从右端开始计算。

这样它先total2=0;然后total1=total2;那么我们这样行不行呢?(total1=total2)=0;这样是不可以的,因为先要算括号里面的,这时total1=total2是一个表达式,而赋值语句的左边是不允许表达式存在的。

二、算术运算符在C语言中有两个单目和五个双目运算符。

符号功能+单目正-单目负*乘法/除法%取模+加法-减法下面是一些赋值语句的例子,在赋值运算符右侧的表达式中就使用了上面的算术运算符:Area=Height*Width;num=num1+num2/num3-num4;运算符也有个运算顺序问题,先算乘除再算加减。

单目正和单目负最先运算。

取模运算符(%)用于计算两个整数相除所得的余数。

例如:a=7%4;最终a的结果是3,因为7%4的余数是3。

那么有人要问了,我要想求它们的商怎么办呢?b=7/4;这样b就是它们的商了,应该是1。

也许有人就不明白了,7/4应该是1.75,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。

要想也得到小数部分,可以这样写7.0/4或者7/4.0,也即把其中一个数变为非整数。

那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。

例如:a=(int) (7.0/4);因为7.0/4的值为1.75,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了1。

那么思考一下a=(float) (7/4);最终a的结果是多少?单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。

单目加运算符没有意义,纯粹是和单目减构成一对用的。

三、逻辑运算符逻辑运算符是根据表达式的值来返回真值或是假值。

其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。

符号功能&&逻辑与||逻辑或!逻辑非例如:5!3;0||-2&&5;!4;当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。

当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。

逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。

若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。

还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。

例如:a=2,b=1;a||b-1;因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

四、关系运算符关系运算符是对两个表达式进行比较,返回一个真/假值。

符号功能>大于<小于>=大于等于<=小于等于==等于!=不等于这些运算符大家都能明白,主要问题就是等于==和赋值=的区别了。

一些刚开始学习C语言的人总是对这两个运算符弄不明白,经常在一些简单问题上出错,自己检查时还找不出来。

看下面的代码:if(Amount=123) ……很多新人都理解为如果Amount等于123,就怎么样。

其实这行代码的意思是先赋值Amount=123,然后判断这个表达式是不是真值,因为结果为123,是真值,那么就做后面的。

如果想让当Amount等于123才运行时,应该if(Amount==123) ……五、自增自减运算符这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。

例如:--Couter;Couter--;++Amount;Amount++;看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。

运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。

这样讲可能不太清楚,看下面的例子:num1=4;num2=8;a=++num1;b=num2++;a=++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。

b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为9。

那么如果出现这样的情况我们怎么处理呢?c=num1+++num2;到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。

所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。

六、复合赋值运算符在赋值运算符当中,还有一类C/C++独有的复合赋值运算符。

它们实际上是一种缩写形式,使得对变量的改变更为简洁。

Total=Total+3;乍一看这行代码,似乎有问题,这是不可能成立的。

其实还是老样子,'='是赋值不是等于。

它的意思是本身的值加3,然后在赋值给本身。

为了简化,上面的代码也可以写成:Total+=3;复合赋值运算符有下列这些:符号功能+=加法赋值-=减法赋值*=乘法赋值/=除法赋值%=模运算赋值<<=左移赋值>>=右移赋值&=位逻辑与赋值|=位逻辑或赋值^=位逻辑异或赋值按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。

运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。

另,负数按补码形式参加按位与运算。

“与运算”的特殊用途:(1)清零。

如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

(2)取一个数中指定位方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。

例:设X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;还可用来取X的2、4、6位。

按位或运算符(|)参加运算的两个对象,按二进制位进行“或”运算。

运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;即:参加运算的两个对象只要有一个为1,其值为1。

例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。

另,负数按补码形式参加按位或运算。

“或运算”特殊作用:(1)常用来对一个数据的某些位置1。

方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。

此数与X相或可使X中的某些位置1。

例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。

异或运算符(^)参加运算的两个数据,按二进制位进行“异或”运算。

运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

“异或运算”的特殊作用:(1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。

例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。

(2)与0相异或,保留原值,X ^ 0000 0000 = 1010 1110。

从上面的例题可以清楚的看到这一点。

取反运算符(~)参加运算的一个数据,按二进制位进行“取反”运算。

运算规则:~1=0; ~0=1;即:对一个二进制数按位取反,即将0变1,1变0。

使一个数的最低位为零,可以表示为:a&~1。

~1的值为1111111111111110,再按“与”运算,最低位一定为0。

因为“~”运算符的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。

左移运算符(<<)将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

例:a = a << 2 将a的二进制位左移2位,右补0,左移1位后a = a * 2;若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

右移运算符(>>)将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

操作数每右移一位,相当于该数除以2。

例如:a = a >> 2 将a的二进制位右移2位,左补0 or 补1 得看被移数是正还是负。

>> 运算符把 expression1 的所有位向右移 expression2 指定的位数。

expression1 的符号位被用来填充右移后左边空出来的位。

向右移出的位被丢弃。

例如,下面的代码被求值后,temp 的值是 -4:-14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)。

var temp = -14 >> 2无符号右移运算符(>>>)>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。

右移后左边空出的位用零来填充。

移出右边的位被丢弃。

例如:var temp = -14 >>> 2变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。

相关文档
最新文档