C语言运算符大全

合集下载

c语言中各个运算符号的含义

c语言中各个运算符号的含义

C 语言中有多种运算符,它们用于执行不同类型的操作,包括算术运算、关系运算、逻辑运算等。

以下是 C 语言中一些常见运算符的含义和用法:1. 算术运算符•+(加法):将两个操作数相加。

•-(减法):从左操作数中减去右操作数。

•*(乘法):将两个操作数相乘。

•/(除法):将左操作数除以右操作数。

•%(取余):返回左操作数除以右操作数的余数。

2. 关系运算符•==(等于):检查两个操作数是否相等,如果相等则返回真(1),否则返回假(0)。

•!=(不等于):检查两个操作数是否不相等,如果不相等则返回真(1),否则返回假(0)。

•>(大于):检查左操作数是否大于右操作数,如果是则返回真(1),否则返回假(0)。

•<(小于):检查左操作数是否小于右操作数,如果是则返回真(1),否则返回假(0)。

•>=(大于等于):检查左操作数是否大于等于右操作数,如果是则返回真(1),否则返回假(0)。

•<=(小于等于):检查左操作数是否小于等于右操作数,如果是则返回真(1),否则返回假(0)。

3. 逻辑运算符•&&(逻辑与):如果两个操作数都为真,则返回真(1),否则返回假(0)。

•||(逻辑或):如果两个操作数中至少有一个为真,则返回真(1),否则返回假(0)。

•!(逻辑非):如果操作数为真,则返回假(0),如果操作数为假,则返回真(1)。

4. 位运算符•&(按位与):对两个操作数的每一位执行与操作。

•|(按位或):对两个操作数的每一位执行或操作。

•^(按位异或):对两个操作数的每一位执行异或操作。

•~(按位取反):对操作数的每一位执行取反操作。

•<<(左移位):将操作数的位向左移动指定的位数。

•>>(右移位):将操作数的位向右移动指定的位数。

这是一些 C 语言中常见运算符的基本含义和用法。

运算符是编写 C 代码时非常重要的一部分,通过它们可以进行各种类型的计算和比较。

C语言运算符号的种类

C语言运算符号的种类

一、C语言运算符号的种类编辑1 算术运算符用于各类数值运算。

包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符用于比较运算。

包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符用于逻辑运算。

包括与(&&)、或(||)、非(!)三种。

4.位操作运算符参与运算的量,按二进制位进行运算。

包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符用于把若干表达式组合成一个表达式(,)。

8.指针运算符用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符有括号(),下标[],成员(→,.)等几种。

二、C语言运算符号的优先级编辑1、优先级1级结合方向左结合(自左至右)( ) 圆括号[ ] [1] 下标运算符-> 指向结构体成员运算符. 结构体成员运算符[1] (请注意它是一个实心圆点)2、优先级2级结合方向右结合(自右至左)单目运算符! 逻辑非运算符~ 按位取反运算符++ 自增运算符-- 自减运算符- 负号运算符(类型) 类型转换运算符* 指针运算符& 地址与运算符sizeof 长度运算符3、优先级3级结合方向左结合双目运算符* 乘法运算符/ 除法运算符% 取余运算符4、优先级4级结合方向左结合双目运算符+ 加法运算符- 减法运算符5、优先级5级结合方向左结合双目运算符<< 左移运算符>> 右移运算符6、优先级6级结合方向左结合双目运算符<、<=、>、>= 关系运算符7、优先级7级结合方向左结合双目运算符== 等于运算符(判断)!= 不等于运算符(判断)8、优先级8级结合方向左结合双目运算符& 按位与运算符9、优先级9级结合方向左结合双目运算符^ 按位异或运算符10、优先级10级结合方向左结合双目运算符| 按位或运算符举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。

【最新精选】c语言34种运算符

【最新精选】c语言34种运算符

C语言运算符算术运算符TAG:运算符,数据类型TEXT:算术运算符对数值进行算术运算,其中:加、减、乘、除、求余运算是双目运算。

其结果可以是整数、单精度实数和双精度实数。

自增、自减运算是单目运算,其操作对象只能使整型变量,不能是常量或表达式等其他形式。

REF: .TXT,+运算符.txt,-运算符.txt,*运算符.txt,/运算符.txt,%运算符,++运算符,-- 运算符加+TAG:算术运算符,运算符,数据类型TEXT:双目运算符,算数加法。

单目运算符,表示正数。

REF: .TXT,算数运算符.txt减-TAG:算术运算符,运算符,数据类型TEXT:双目运算符,算数减法。

单目运算符,表示负数。

REF: .TXT,算数运算符.txt乘*TAG:算术运算符,运算符,数据类型TEXT:*,双目运算符,算数乘法。

REF: .TXT,算数运算符.txt除/TAG:算术运算符,运算符,数据类型TEXT:/,双目运算符,算数除法;如果两个参与运算的数是整数,表示整除,舍去小数部分。

如5.0/2等于2.5,而5/2等于2。

REF: .TXT,算数运算符.txt取余%TAG:算术运算符,运算符,数据类型TEXT:/,双目运算符,算数除法;如果两个参与运算的数是整数,表示整除,舍去小数部分。

如5.0/2等于2.5,而5/2等于2。

REF: .TXT,算数运算符.txt自加++TAG:算术运算符,运算符,数据类型TEXT:单目运算符,针对整数运算,可以放在运算数的两侧,表示运算数增1。

REF: .TXT,算数运算符.txt自减--TAG:算术运算符,运算符,数据类型TEXT:单目运算符,针对整数运算,可以放在运算数的两侧,表示运算数减1。

REF: .TXT,算数运算符.txt关系运算符TAG:算数运算符,运算符,数据类型TEXT:关系运算符用于对两个操作数的比较,包括:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!= (非等于)、==(等于)。

c语言基础运算符

c语言基础运算符

c语言基础运算符C语言是一种广泛应用于系统和应用软件开发的高级编程语言,其基础运算符是构建各种算术和逻辑操作的核心要素。

本文将详细介绍C 语言的基础运算符及其使用方法。

2. 算术运算符算术运算符用于执行基本的数学运算,包括加法、减法、乘法、除法、取余和自增自减等操作。

常见的算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)、百分号(%)、自增(++)和自减(--)。

3. 关系运算符关系运算符用于比较变量之间的关系,返回的结果为真(1)或假(0)。

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

4. 逻辑运算符逻辑运算符用于进行逻辑运算,常用于判断条件是否成立。

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

与运算符返回两个条件都为真时为真,或运算符返回两个条件至少有一个为真时为真,非运算符返回条件的相反值。

5. 位运算符位运算符用于对二进制数进行逐位操作。

常见的位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)。

位运算符适用于特定的位操作,如设置某一位的值或获取某一位的值等。

6. 赋值运算符赋值运算符用于将一个值赋给变量。

常见的赋值运算符为等号(=),可以简化变量赋值操作。

7. 杂项运算符杂项运算符包括条件运算符(?:)、sizeof运算符(返回变量的大小)和逗号运算符(用于对多个表达式进行求值,返回最后一个表达式的值)等。

8. 运算符优先级不同的运算符拥有不同的优先级,当一个表达式中存在多个运算符时,按照优先级依次执行运算。

在C语言中,括号可用于提高运算符的优先级。

本文介绍了C语言基础运算符及其使用方法。

通过掌握这些运算符,你将能够进行各种算术和逻辑操作,更好地开发C语言程序。

希望本文能对你的学习和工作有所帮助,谢谢阅读!。

C语言运算符大全

C语言运算符大全

C语言运算符大全C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。

C语言有三大运算符:算术、关系与逻辑、位操作。

另外,C还有一些特殊的运算符,用于完成一些特殊的任务。

2.6.1算术运算符表2-5列出了C语言中允许的算术运算符。

在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。

当“/”被用于整数或字符时,结果取整。

例如,在整数除法中,10/3=3。

一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。

模运算符“%”在C语言中也同它在其它语言中的用法相同。

切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。

最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。

2.6.2自增和自减C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。

运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x;自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。

自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。

请看下例:x=10;;y=++x;此时,y=11。

如果程序改为:x=10;y=x++;则y=10。

在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。

在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。

下面是算术运算符的优先级::最高++、----(一元减)*、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。

c语言算数运算符

c语言算数运算符

c语言算数运算符算数运算符是 c 语言中的一种非常重要的基础语法,用于进行基本的数学运算,包括加、减、乘、除等。

本文旨在全面介绍 c 语言算数运算符,帮助初学者更好地理解和掌握该语法。

1. 加法运算符:+加法运算符用于将两个数相加,例如:int a = 1;int b = 2;int c = a + b;printf("%d", c); // 输出32. 减法运算符:-减法运算符用于将两个数相减,例如:int a = 5;int b = 3;int c = a - b;printf("%d", c); // 输出23. 乘法运算符:*乘法运算符用于将两个数相乘,例如:int a = 3;int b = 4;int c = a * b;printf("%d", c); // 输出124. 除法运算符:/除法运算符用于将两个数相除,例如:int a = 6;int b = 3;int c = a / b;printf("%d", c); // 输出2需要注意的是,如果除数为0,程序将会报错。

5. 取余运算符:%取余运算符用于获取两个数相除后的余数,例如:int a = 7;int b = 3;int c = a % b;printf("%d", c); // 输出16. 自增运算符:++自增运算符可以将变量的值自增1,例如:int a = 1;a++;printf("%d", a); // 输出27. 自减运算符:--自减运算符可以将变量的值自减1,例如:int a = 3;a--;printf("%d", a); // 输出28. 赋值运算符:=赋值运算符用于将一个值赋给一个变量,例如:int a = 3;int b = a;printf("%d", b); // 输出39. 复合赋值运算符:+=、-=、*=、/=、%=复合赋值运算符可以对一个变量进行算数运算后再赋值给自己,例如:int a = 2;a += 3; // 等价于 a = a + 3;printf("%d", a); // 输出510. 运算符优先级需要注意的是,c 语言中存在运算符优先级,运算符优先级越高的先运算。

C常用符号

C常用符号

+、-、*、/解释: C语言的运算符——加、减、乘、除。

+=、-=、*=、/=、%=解释: C语言的运算符——修改和替代。

.解释: C语言的运算符——结构或联合的成员选择。

,解释:C语言中①逗号运算符。

②分隔符,用于分隔函数参数表中的各参数。

~解释: C语言的运算符——二进码反(按位非)。

*解释:C语言的分隔符——用于在变量说明中指明当前说明的变量是指向某个类型的指针。

!解释: C语言的运算符——逻辑反(非)。

& 解释: C语言的运算符——①取变量地址。

②按位与。

&&解释: C语言的运算符——逻辑与。

%解释: C语言的运算符——模除(取整除后的余数)。

;解释: C语言的分隔符——终止一条语句。

:解释: C语言的分隔符——指明标号语句。

::解释: C++语言的作用域运算符。

当局部变量与全局变量同名时,在局部变量的作用域内,全局变量前面使用该运算符。

++解释: C语言的运算符——增一。

-- 解释:C语言的运算符——减一。

= 解释:C语言的①运算符——赋值。

②分隔符——用于分隔变量说明和初始化表。

==解释: C语言的运算符——等于。

!=解释: C语言的运算符——不等于。

>=解释:C语言的运算符——大于等于。

> 解释:C语言的运算符——大于。

<=解释: C语言的运算符——小于等于。

<解释: C语言的运算符——小于。

->解释: C语言的运算符——指向结构(C++ 语言中的类)成员的指针引用。

<<解释: C语言的运算符——字位左移。

>>解释:C语言的运算符——字位右移。

^ 解释:C语言的运算符——按位异或。

| 解释:C语言的运算符——按位或。

||解释:C语言的运算符——逻辑或。

[ ]解释:C语言的分隔符——指明数组下标。

( )解释: C语言的分隔符——用于形成表达式、隔离条件表达式,以及指明函数调用和函数参数。

{ }解释: C语言的分隔符——用于指明复合语句(分程序)的开始和及结束。

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语言34种运算符

C语言34种运算符

说明:
(1)同一优先级的运算符,运算次序由结合方向决定。

例如 * 与 / 具有相同的优先级别,其结合方向为自左至右,因此3*5/4的运算符次序是先乘后除。

- 和 ++ 为同一优先级,结合方向为自右至左,因此 -i++相当于-(i++)。

(2)不同的运算符要求有不同的运算对象个数,如 + (加)和 - (减)为双目运算符,要求在运算符两侧各有一个运算对象(3+5、8-3等)。

而 ++ 和 - (负
号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如– a、
i++、--i、(float)i、sizeof (int)、*p等)。

条件运算符是C语言中唯一的
一个三目运算符,如 x ? a:b。

(3)从上表中可以大致归纳出各类运算符的优先级:
初等运算符 ( ) [ ] -> .

单目运算符

算术运算符(先乘除后加减)

关系运算符

逻辑运算符(不包括!)

条件运算符

赋值运算符

逗号运算符
以上的优先级别由上到下递减。

初等运算符优先级最高,逗号运算符优先级最低。

位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如>>和<<),有的在关系运算符之后(如&,^、|))。

为了容易记忆,使用位运算符时可加圆括号。

C语言运算符大全

C语言运算符大全

C语言运算符大全C语言运算符大全C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。

C语言有三大运算符:算术、关系与逻辑、位操作。

另外,C还有一些特殊的运算符,用于完成一些特殊的任务。

2.6.1算术运算符表2-5列出了C语言中允许的算术运算符。

在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。

当“/”被用于整数或字符时,结果取整。

例如,在整数除法中,10/3=3。

一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。

模运算符“%”在C 语言中也同它在其它语言中的用法相同。

切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。

最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。

2.6.2自增和自减C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。

运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x;自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。

自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。

请看下例:x=10;;y=++x;此时,y=11。

如果程序改为:x=10;y=x++;则y=10。

在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。

在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。

下面是算术运算符的优先级::最高++、----(一元减)*、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。

c语言算术运算符

c语言算术运算符

c语言算术运算符c语言算术运算符是程序设计的一种基本概念,可以完成数学运算、赋值以及逻辑运算等复杂运算。

它提供了一组简单而可用的操作符,为程序设计师提供了一种更加有效的完成任务的方式。

在所有的程序语言中,算术运算符都是同一类型。

c语言中的算术运算符有9种,分别是加法(+)、减法(-)、乘法(*)、除法(/)、取余(%)、赋值(=)、逻辑运算(&&或||)、比较运算符(>,>=,<=,==,!=)和位运算符(&,|,^)。

1、加法(+)运算符用于加一个数值到另一个数值上,它接受两个参数,返回它们的和:int a = 10,b = 20; c = a+b,结果为30。

2、减法(-)运算符用于将一个数从另一个数上减去,它接受两个参数,返回它们的差:int a = 10,b = 20; c = a-b,结果为-10。

3、乘法(*)运算符用于将两个数值相乘,它接受两个参数,返回它们的积:int a = 10,b = 20; c = a*b,结果为200。

4、除法(/)运算符用于将一个数除以另一个数,它接受两个参数,返回它们的商:int a = 10,b = 20; c = a/b,结果为0.5。

5、取余(%)运算符用于计算两个数之间的余数,它接受两个参数,返回它们之间的余数:int a = 10,b = 20; c = a%b,结果为10。

6、赋值(=)运算符用于将一个变量的值赋给另一个变量,它接受两个参数,返回右边变量的值:int a = 10,b; b=a,结果为10。

7、逻辑运算(&&和||)运算符用于把两个或多个条件连接起来,它接受多个参数,返回true或false:bool a = true,b = false;c = a&&b,结果为false。

8、比较运算符(>,>=,<=,==,!=)用于比较两个值的大小,它接受两个参数,返回true或false:int a = 10,b = 20; c = a>b,结果为false。

06-07-C语言基础-全部运算符

06-07-C语言基础-全部运算符

//-3
– 关系运算符和表达式
关系运算符
– 种类:< <= == >= > – 结合方向:自左向右 – 优先级别: 例 != < <= > >= == != 优先级6(高)
c>a+b //c>(a+b) a>b!=c //(a>b)!=c – 关系表达式的值:是逻辑值“真”或“假”,用1和0表 1 0 a==b<c //a==(b<c) 示 a=b>c //a=(b>c) 例 int a=3,b=2,c=1,d,f; a>b //表达式值1 (a>b)==c //表达式值1 b+c<a //表达式值0 //d=1 d=a>b f=a>b>c //f=0
说明:
–结合方向:自右向左 – 优先级: 14 –左侧必须是变量,不能是常量或表达式
例:
例 3=x-2*y; –赋值转换规则:使赋值号右边表达式值自动转换成其左边 变量的类型 a+b=3; – 赋值表达式的值与变量值相等,且可嵌套 例 float f; 例 int i; i=2.56; int i; //结果i=2; i=10; f=i; a=b=c=5 //表达式值为5,a,b,c值为5 则 f=10.0 // b=5;a=5 a=(b=5) a=5+(c=6) //表达式值11,c=6,a=11 a=(b=4)+(c=6)//表达式值10,a=10,b=4,c=6 a=(b=10)/(c=2) //表达式值5,a=5,b=10,c=2
优先级: 结合方向:
!
(2)

!
:从右向左
&& (11) || (12) 低

C语言运算符大全讲解

C语言运算符大全讲解
。下表给出了关系和逻辑运算符的相对优先级:
:最高!

>= <=
=== !=
=&&
最低||同算术表达式一样,在关系或逻辑表达式中也使用括号来修改原计算顺序。切记,所有关系和逻辑表达式产生的结果不是0就是1,所以下面的程序段不仅正确而且
将在屏幕上打印数值1。
int x;
;x=100;
;printf("%d",x>10);
。下面是算术运算符的优先级:
:最高++、-
--
-(一元减)
*、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言
处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。
2.6.3关系和逻辑运算符
关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。关系和逻辑运算符概念中的关键是True(真)和Flase(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1(见表2-6)。
C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x;
自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例:

C语言运算符大全

C语言运算符大全

C语言运算符大全C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号.C语言有三大运算符:算术、关系与逻辑、位操作。

另外,C还有一些特殊的运算符,用于完成一些特殊的任务.2.6。

1算术运算符表2—5列出了C语言中允许的算术运算符。

在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型.当“/”被用于整数或字符时,结果取整.例如,在整数除法中,10/3=3。

一元减法的实际效果等于用—1乘单个操作数,即任何数值前放置减号将改变其符号.模运算符“%”在C语言中也同它在其它语言中的用法相同.切记,模运算取整数除法的余数,所以“%”不能用于float和double类型.最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。

2。

6。

2自增和自减C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。

运算符“++”是操作数加1,而“——”是操作数减1,换句话说:x=x+1;同++x;x=x—1;同--x;自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。

自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。

请看下例:x=10;;y=++x;此时,y=11。

如果程序改为:x=10;y=x++;则y=10。

在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。

在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。

下面是算术运算符的优先级::最高++、—-—-(一元减)*、/、%最低+、—编译程序对同级运算符按从左到右的顺序进行计算。

c语言中所有的符号

c语言中所有的符号

c语言中所有的符号C语言中有很多符号,它们在编程中具有不同的作用和意义。

下面是一些常见的符号及其含义:1. #:预处理符号,用于定义宏。

2. ##:连接符号,用于将两个标识符连接成一个。

3. ?: 条件运算符,用于三目运算。

4. +:加号,用于加法运算或正号。

5. -:减号,用于减法运算或负号。

6. *:乘号,用于乘法运算或指针运算。

7. /:除号,用于除法运算。

8. %:取模运算符,用于求余数。

9. =:赋值运算符,用于将右边的值赋给左边的变量。

10. ==:比较运算符,用于判断两个数据是否相等。

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

12. >:大于运算符,用于判断左边的数据是否大于右边的数据。

13. >=:大于等于运算符,用于判断左边的数据是否大于或等于右边的数据。

14. <:小于运算符,用于判断左边的数据是否小于右边的数据。

15. <=:小于等于运算符,用于判断左边的数据是否小于或等于右边的数据。

16. &:按位与运算符,用于将两个数的每一位进行与运算。

17. |:按位或运算符,用于将两个数的每一位进行或运算。

18. ^:按位异或运算符,用于将两个数的每一位进行异或运算。

19. ~:按位取反运算符,用于将一个数的每一位取反。

20. <<:左移运算符,用于将一个数的二进制位向左移动指定的位数。

21. >>:右移运算符,用于将一个数的二进制位向右移动指定的位数。

22. &&:逻辑与运算符,用于判断两个条件是否同时满足。

23. ||:逻辑或运算符,用于判断两个条件是否有至少一个满足。

24. !:逻辑非运算符,用于将一个条件取反。

25. :冒号,用于定义标签。

26. ;:分号,用于表示语句的结束。

27. ,:逗号,用于分隔多个表达式。

28. {}:大括号,用于表示代码块。

29. ():小括号,用于表示函数调用或表达式的优先级。

C语言运算符详解

C语言运算符详解

C语言运算符详解C语言是一种流行的编程语言,广泛应用于软件开发和系统编程领域。

在C语言中,运算符是一种非常重要的语法元素,用于对数据进行各种操作和计算。

本文将详细介绍C语言中常用的运算符及其使用方法,以帮助读者更好地理解和应用C语言。

一、算术运算符算术运算符用于执行基本的数学运算,包括加法、减法、乘法、除法和求余等操作。

常见的算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)和模运算符(%)。

下面将具体介绍这些运算符的使用。

1. 加法运算符(+):用于执行两个数值相加的操作。

例如,表达式a + b将返回a和b的和。

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

例如,表达式a - b将返回a减去b的结果。

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

例如,表达式a * b将返回a和b的乘积。

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

例如,表达式a / b将返回a除以b的结果。

需要注意的是,如果除数为0,则会出现错误。

5. 模运算符(%):用于计算两个数值相除的余数。

例如,表达式a % b将返回a除以b的余数。

二、赋值运算符赋值运算符用于将一个值赋给一个变量。

常见的赋值运算符是等号(=)。

下面将介绍赋值运算符的使用。

1. 等号赋值符(=):用于将右边的数值赋给左边的变量。

例如,a = b将把b的值赋给a。

除了普通的赋值运算符,还有一些复合赋值运算符,它们可以简化代码并实现特定的功能。

2. 加法赋值运算符(+=):用于将右边的数值与左边的变量相加,并将结果赋给左边的变量。

例如,a += b等效于a = a + b。

3. 减法赋值运算符(-=):用于将右边的数值从左边的变量中减去,并将结果赋给左边的变量。

例如,a -= b等效于a = a - b。

4. 乘法赋值运算符(*=):用于将右边的数值与左边的变量相乘,并将结果赋给左边的变量。

例如,a *= b等效于a = a * b。

c语言的34种运算符

c语言的34种运算符

c语言的34种运算符C语言是一种广泛使用的编程语言,它的运算符非常丰富,共有34种。

本文将详细介绍C语言的34种运算符及其应用。

一、算术运算符(共9种)1. 加法运算符:+2. 减法运算符:-3. 乘法运算符:*4. 除法运算符:/5. 取余运算符:%6. 递增运算符:++7. 递减运算符:--8. 求幂运算符:^9. 复合赋值运算符:a = a + b、a = a - b、a = a * b、a = a / b、a = a % b、a = a++、a = a--、a = a^b二、关系运算符(共6种)1. 等于运算符:==2. 不等于运算符:!=3. 小于关系运算符:<4. 大于关系运算符:>5. 小于等于关系运算符:<=6. 大于等于关系运算符:>=三、逻辑运算符(共3种)1. 与运算符:&&(双与)2. 或运算符:||(双或)3. 非运算符:!(单引号)四、赋值运算符(共6种)1. 简单赋值运算符:=2. 复合赋值运算符:+=、-=、*=、/=、%=、++、--、^=3. 指针赋值运算符:= *ptr、*p1 = p2、p1 = &p24. 数组赋值运算符:a[i] = value5. 结构体赋值运算符:struct_name.member = value6. union赋值运算符:union_name.member = value五、逗号运算符(共1种),,用于变量列表,每个变量先初始化再使用六、指针与地址运算符(共7种)1. &(取地址符号):获取变量的地址2. *(解引用符号):访问地址指向的值3. (类型) *ptr:获取ptr指向的变量的类型和值4. ptr1 ++:移动ptr1指向的地址,ptr1指向下一个地址5. ptr1 --:移动ptr1指向的地址,ptr1指向前一个地址6. ptr1 = ptr2:将ptr2指向的地址赋给ptr17. &variable_name:获取变量名的内存地址(注意:获取的是字符在内存中的地址,不是变量的值)七、三目运算符(共1种):条件表达式八、sizeof运算符(共1种)sizeof(变量或类型),用于计算变量或类型在内存中占用的字节数以上就是C语言中的34种运算符的详细介绍。

04.C语言-运算符和表达式

04.C语言-运算符和表达式
2的值,依次类推,整个逗号表达式的值是最后一个表达式的值。
类型 ,
含义 逗号
示例 a>b,c!=0,x
优先级 15
结合方向 从左到右
计算如下逗号表达式的值。 a=3*5,a*4 //a=15,表达式值60 a=3*5,a*4,a+5 //a=15,表达式值20 x=(a=3,6*3) //赋值表达式,表达式值18,x=18 x=a=3,6*a //逗号表达式,表达式值18,x=3
11
从左到右
||
逻辑或
y/4 || (x+3)==5
12
从左到右
逻辑运算符
• 逻辑运算的值为“真”和“假”两种,用“1”和“0”来表示。
a
b
!a
!b
a && b
a || b
























判断某个年份是否是闰年? 闰年的规则:能被四整除不能被100整除 或者是能被400整除
C) (x>=y>=z)
D) (x>=y) & (y>=z)
3:以下程序的输出结果是________。 main( ) { int n;
( n=6*4, n+6), n*2; printf("n=%d\n",n); } A) 30 B) 24 C) 60 D) 48
4:表达式y=(13>12?15:6>7?8:9)的值为____ 。 A) 9 B) 8 C) 15 D) 1

C语言运算符大全

C语言运算符大全

C语言运算符大全C语言的内部运算符很丰富;运算符是告诉编译程序执行特定算术或逻辑操作的符号..C语言有三大运算符:算术、关系与逻辑、位操作..另外;C还有一些特殊的运算符;用于完成一些特殊的任务..表2-5列出了C语言中允许的算术运算符..在C语言中;运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同;几乎可用于所有C语言内定义的数据类型..当“/”被用于整数或字符时;结果取整..例如;在整数除法中;10/3=3..一元减法的实际效果等于用-1乘单个操作数;即任何数值前放置减号将改变其符号..模运算符“%”在C语言中也同它在其它语言中的用法相同..切记;模运算取整数除法的余数;所以“%”不能用于float和double类型..最后一行打印一个0和一个1;因为1/2整除时为0;余数为1;故1%2取余数1..C语言中有两个很有用的运算符;通常在其它计算机语言中是找不到它们的—自增和自减运算符;++和--..运算符“++”是操作数加1;而“--”是操作数减1;换句话说:x=x+1;同++x;x=x-1;同--x;自增和自减运算符可用在操作数之前;也可放在其后;例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的..自增或自减运算符在操作数之前;C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后;C语言就先引用操作数的值;而后再进行加1或减1操作..请看下例:x=10;;y=++x;此时;y=11..如果程序改为:x=10;y=x++;则y=10..在这两种情况下;x都被置为11;但区别在于设置的时刻;这种对自增和自减发生时刻的控制是非常有用的..在大多数C编译程序中;为自增和自减操作生成的程序代码比等价的赋值语句生成的代码要快得多;所以尽可能采用加1或减1运算符是一种好的选择....下面是算术运算符的优先级::最高++、----一元减*、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算..当然;括号可改变计算顺序..C语言处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高..关系运算符中的“关系”二字指的是一个值与另一个值之间的关系;逻辑运算符中的“逻辑”二字指的是连接关系的方式..因为关系和逻辑运算符常在一起使用;所以将它们放在一起讨论..关系和逻辑运算符概念中的关键是True真和Flase假..C语言中;非0为True;0为Flase..使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1见表2-6..表2-6给出于关系和逻辑运算符;下面用1和0给出逻辑真值表..关系和逻辑运算符的优先级比算术运算符低;即像表达式10>1+12的计算可以假定是对表达式10>1+12的计算;当然;该表达式的结果为Flase..在一个表达式中允许运算的组合..例如:10>5&&10<9||3<=4这一表达式的结果为True....下表给出了关系和逻辑运算符的相对优先级::最高>= <==== ==&&最低||同算术表达式一样;在关系或逻辑表达式中也使用括号来修改原计算顺序..切记;所有关系和逻辑表达式产生的结果不是0就是1;所以下面的程序段不仅正确而且将在屏幕上打印数值1..int x;;x=100;;printf"%d";x>10;与其它语言不同;C语言支持全部的位操作符BitwiseOperators..因为C语言的设计目的是取代汇编语言;所以它必须支持汇编语言所具有的运算能力..位操作是对字节或字中的位bit进行测试、置位或移位处理;这里字节或字是针对C标准中的char和int数据类型而言的..位操作不能用于float、double、longdouble、void或其它复杂类型..表2-7给出了位操作的操作符..位操作中的AND、OR和NOT1的补码的真值表与逻辑运算等价;唯一不同的是位操作是逐位进行运算的..如表2-8所示;当且仅当一个操作数为True时;异或的输出为True;否则为Flase..位操作通常用于设备驱动程序;例如调制解调器程序、磁盘文件管理程序和打印机驱动程序..这是因为位操作可屏蔽掉某些位;如奇偶校验位奇偶校验位用于确保字节中的其它位不会发生错误通常奇偶校验位是字节的最高位..通常我们可把位操作AND作为关闭位的手段;这就是说两个操作数中任一为0的位;其结果中对应位置为0..例如;下面的函数通过调用函数read_modem;从调制解调器端口读入一个字符;并将奇偶校验位置成0..字节的位8是奇偶位;将该字节与一个位1到位7为1、位8为0的字节进行与操作;可将该字节的奇偶校验位置成0..表达式ch&127正是将ch中每一位同127数字的对应位进行与操作;结果ch的位8被置成了0..在下面的例子中;假定ch接收到字符"A"并且奇偶位已经被置位..一般来说;位的AND、OR和XOR操作通过对操作数运算;直接对结果变量的每一位分别处理..正是因为这一原因还有其它一些原因;位操作通常不像关系和逻辑运算符那样用在条件语句中;我们可以用例子说明这一点:假定X=7;那么x&&8为Ture1;而x&8却为Flase0..记住;关系和逻辑操作符结果不是0就是1..而相似的位操作通过相应处理;结果可为任意值..换言之;位操作可以有0或1以外的其它值;而逻辑运算符的计算结果总是0或1..移位操作符>>和<<将变量的各位按要求向或向左移动..右移语句通常形式是:variable>>右移位数左移语句是:variable<<左移位数当某位从一端移出时;另一端移入0某些计算机是送1;详细内容请查阅相应C编译程序用户手册..切记:移位不同于循环;从一端移出的位并不送回到另一端去;移去的位永远丢失了;同时在另一端补0..移位操作可对外部设备如D/A转换器的输入和状态信息进行译码;移位操作还可用于整数的快速乘除运算..如表2-9所示假定移位时补0;左移一位等效于乘2;而右移一位等效于除以2..每左移一位乘2;注意x<<2后;原x的信息已经丢失了;因为一位已经从一端出;每右移一位相当于被2除;注意;乘后再除时;除操作并不带回乘法时已经丢掉的高位..反码操作符为~..~的作用是将特定变量的各位状态取反;即将所有的1位置成0;所有的0位置成1..位操作符经常用在加密程序中;例如;若想生成一个不可读磁盘文件时;可以在文件上做一些位操作..最简单的方法是用下述方法;通过1的反码运算;将每个字节的每一位取反..原字节 00101100第二次取反码 00101100注意;对同一行进行连续的两次求反;总是得到原来的数字;所以第一次求反表示了字节的编码;第二次求反进行译码又得到了原来的值..可以用下面的函数encode对字符进行编码..2.6.5 操作符C语言提供了一个可以代替某些if-then-else语句的简便易用的操作符..该操作符是三元的;其一般形式为:EXP1 EXE2:EXP33EXP1;EXP2和EXP3是表达式;注意冒号的用法和位置..操作符“ ”作用是这样的;在计算EXP1之后;如果数值为True;则计算EXP2;并将结果作为整个表达式的数值;如果EXP1的值为Flase;则计算EXP3;并以它的结果作为整个表达式的值;请看下例:x=10;;y=x>9 100:200;例中;赋给y的数值是100;如果x被赋给比9小的值;y的值将为200;若用if-else语句改写;有下面的等价程序:x=10;ifx>9y=100;;elsey=200;;有关C语言中的其它条件语句将在第3章进行讨论..2.6.6 逗号操作符作为一个操作符;逗号把几个表达式串在一起..逗号操作符的左侧总是作为void无值;这意味着其右边表达式的值变为以逗号分开的整个表达式的值..例如:x=y=3;y+1;这行将3赋给y;然后将4赋给x;因为逗号操作符的优先级比赋值操作符优先级低;所以必须使用括号..实际上;逗号表示操作顺序..当它在赋值语句右边使用时;所赋的值是逗号分隔开的表中最后那个表达式的值..例如;y=10;x=y=y-5;25/y;执行后;x的值是5;因为y的起始值是10;减去5之后结果再除以25;得到最终结果....在某种意义上可以认为;逗号操作符和标准英语的and是同义词..表2-10列出了C语言所有操作符的优先级;其中包括将在本书后面讨论的某些操作符..注意;所有操作符除一元操作符和之外都是左结合的..一元操作符*;&和-及操作符“”则为右结合..C语言运算符大全C语言共有34个运算符;今天闲来没事就找了一下;现在拿出来分享一下呵:按优先级排序;空行表示优先级下降;01为最高;最先算14~31均为双目;左结合01.圆括号02.下标-> 03.指针型结构成员. 04.结构成员05.逻辑非~ 06.位非++ 07.自增-- 08.自减- 09.取负类型 10.类型转换* 11.取内容& 12.取地址sizeof 13.求字节此级5~13均为单目运算;且都为右结合* 14.乘/ 15.除% 16.求余+ 17.加- 18.减<< 19.左移>> 20.右移< 21.小于<= 22.小于等于> 23.大于>= 24.大于等于== 25.等于= 26.不等于& 27.位与^ 28.位异或| 29.位或&& 30.与|| 31.或: 32.条件运算此级32为三目运算;右结合= 33.赋值运算另有10个扩展符+=;-=;*=;/=;%=;>>=;<<=;&=;^=;|= ; 34.逗号运算上面给出的是其运算符;下面给出32个关键字及其含义:auto :声明自动变量一般不使用double :声明双精度变量或函数int:声明整型变量或函数struct:声明结构体变量或函数break:跳出当前循环else :条件语句否定分支与 if 连用long :声明长整型变量或函数switch :用于开关语句case:开关语句分支enum :声明枚举类型register:声明积存器变量typedef:用以给数据类型取别名当然还有其他作用char :声明字符型变量或函数extern:声明变量是在其他文件正声明也可以看做是引用变量return :子程序返回语句可以带参数;也看不带参数union:声明联合数据类型const :声明只读变量float:声明浮点型变量或函数short :声明短整型变量或函数unsigned:声明无符号类型变量或函数continue:结束当前循环;开始下一轮循环for:一种循环语句可意会不可言传signed:生命有符号类型变量或函数void :声明函数无返回值或无参数;声明无类型指针基本上就这三个作用default:开关语句中的“其他”分支goto:无条件跳转语句sizeof:计算数据类型长度volatile:说明变量在程序执行中可被隐含地改变do :循环语句的循环体while :循环语句的循环条件static :声明静态变量if:条件语句1级优先级左结合圆括号;下标运算符;->指向结构体成员运算符;. 结构体成员运算符..2级优先级右结合逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;类型类型转换运算符;*指针运算符;&地址运算符;sizeof 长度运算符..3级优先级左结合*乘法运算符;/除法运算符;%取余运算符..4级优先级左结合+加法运算符;-减法运算符..5级优先级左结合<<左移运算符;>>右移运算符..6级优先级左结合<、<=、>、>=关系运算符..7级优先级左结合==等于运算符;=不等于运算符..8级优先级左结合&按位与运算符..9级优先级左结合^按位异或运算符..10级优先级左结合|按位或运算符..11级优先级左结合&&逻辑与运算符..12级优先级左结合||逻辑或运算符..13级优先级右结合:条件运算符..14级优先级右结合=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符..15级优先级左结合;逗号运算符..运算符优先级优先级从上到下依次递减;最上面具有最高的优先级;逗号操作符具有最低的优先级..所有的优先级中;只有三个优先级是从右至左结合的;它们是单目运算符、条件运算符、赋值运算符..其它的都是从左至右结合..具有最高优先级的其实并不算是真正的运算符;它们算是一类特殊的操作..是与函数相关;与数组相关;而->及.是取结构成员..其次是单目运算符;所有的单目运算符具有相同的优先级;因此在我认为的真正的运算符中它们具有最高的优先级;又由于它们都是从右至左结合的;因此*p++与*p++等效是毫无疑问的..另外在C语言里没有前置后置之分因为++ -- 是右结合所以右侧优先运算表现为 "操作数后置优先级比较高" 的假象前置和后置的区分是因为运算符重载而后加入C++的接下来是算术运算符;*、/、%的优先级当然比+、-高了..移位运算符紧随其后..其次的关系运算符中;< <= > >=要比 == =高一个级别;不大好理解..所有的逻辑操作符都具有不同的优先级单目运算符出外;和~逻辑位操作符的"与"比"或"高;而"异或"则在它们之间..跟在其后的&&比||高..接下来的是条件运算符;赋值运算符及逗号运算符..在C语言中;只有4个运算符规定了运算方向;它们是&&、| |、条件运算符及赋值运算符..&&、| |都是先计算左边表达式的值;当左边表达式的值能确定整个表达式的值时;就不再计算右边表达式的值..如 a = 0 && b; &&运算符的左边位0;则右边表达式b 就不再判断..在条件运算符中..如a b:c;先判断a的值;再根据a的值对b或c之中的一个进行求值..赋值表达式则规定先对右边的表达式求值;因此使 a = b = c = 6;成为可能.. 运算符优先级等级口诀及注释运算符优先级等级口诀圆方括号、箭头一句号; 自增自减非反负、针强地址长度;乘除;加减;再移位;小等大等、等等不等;八位与;七位异;六位或;五与;四或;三疑;二赋;一真逗..其中“;”号为一个等级分段..运算符优先级等级注释“圆方括号、箭头一句号”指的是第15级的运算符..其中圆方括号很明显“、”;箭头指的是指向结构体成员运算符“->”;句号指的是结构体成员运算符“.” ;“自增自减非反负、针强地址长度”指的是第14级的运算符..其中非指的是逻辑运算符“”;反指的是按位取反运算符“~”;负指的是负号运算符“-”;针指的是指针运算符“*”;强指的是强制类型转换运算符;地址指的是地址运算符“&”;长度指的是长度运算符“sizeof ”;“乘除;加减;再移位”移位指的是左移运算符“<<”和右移运算符“>>”;其中除法还包括了取余运算符“%”;“小等大等、等等不等” 指的是第10级到第9级的运算符:<、<=、>和>=;等等指的是等于运算符==;不等指的是不等于运算符=“八位与;七位异;六位或”其中八位与指的是第8级的按位与运算符“&”;七位异指的是第7级的按位异或运算符“^”;六位或指的是第6级的按位或运算符“||”;“五与;四或”指的是第5级、第4级的逻辑与运算符“&&”和逻辑或运算符“||”;“三疑;二赋;一真逗”指的是第3级到第1级的运算符..其中;三疑指的是条件运算符“:” 三有双重含义:即指优先级别是三;它的运算符类型也是三目;疑也取“ ”之意;二赋指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ;一真逗指的是第1级的“;”运算符;真字只是为了语句需要罢了..由于C语言的运算符优先级与C++的不完全一样主要是增加了几个运算符;所以这个口诀不能完全实用于C++.但是应该能够兼容;大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的运算符应用举例·赋值运算符:a=5; a=b=0;第一个赋值语句把5赋给变量a;第二个赋值语句的意思是把0同时赋值给两个变量..这是因为赋值语句是从右向左运算的;也就是说从右端开始计算;先b=0;然后a=b..·复合赋值运算符:a=1;a+=3;上面第二个赋值语句等价于a=a+3;即a=4..·算术运算符:Area=Height*Width;num=num1+num2/num3-num4;第一个赋值语句Height和Width相乘结果赋给变量Area;第二个赋值语句先完成num2与num3的整除运算;然后与num1相加;再减去num4;结果赋给num..运算符运算顺序先算乘除再算加减..单目正和单目负最先运算..·逻辑运算符:a=1;b=1; a||b-1;因为a=1为真值;所以不管b-1是不是真值;总的表达式一定为真值;这时后面的表达式就不会再计算了..·关系运算符:ifa>0...如果a>0;则执行if语句中的内容;否则退出..·条件运算符:a=b>0 b:-b;当b>0时;a=b;当b不大于0时;a=-b;其实上面的意思就是把b的绝对值赋值给a..·逗号运算符:b=2;c=7;d=5;a=++b;c--;d+3;有三个表达式;用逗号分开;所以最终的值应该是最后一个表达式的值;也就是d+3=8;所以a=8..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原字节 00101100
第一次取反码 11010011
第二次取反码 00101100
注意,对同一行进行连续的两次求反,总是得到原来的数字,所以第一次求反表示了字
节的编码,第二次求反进行译码又得到了原来的值。可以用下面的函数encode()对字符进行编码。
2.6.5 ?操作符
C语言提供了一个可以代替某些if-then-else语句的简便易用的操作符?。该操作符是三元的,其一般形式为:
= += -= *= /=
&= ^= |= <<= >>=各种赋值由右向左
,逗号(顺序)由左向右
上面给出的是其运算符,
下面给出32个关键字及其含义:
auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x;
自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例:
return :子程序返回语句(可以带参数,也看不带参数)
union:声明联合数据类型
const :声明只读变量
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环
for:一种循环语句(可意会不可言传)
2.6.4位操作符
与其它语言不同,C语言支持全部的位操作符(BitwiseOperators)。因为C语言的设计目的是取代汇编语言,所以它必须支持汇编语言所具有的运算能力。位操作是对字节或字中的位(bit)进行测试、置位或移位处理,这里字节或字是针对C标准中的char和int数据类型而言的。位操作不能用于float、double、longdouble、void或其它复杂类型。表2-7给出了位操作的操作符。位操作中的AND、OR和NOT(1的补码)的真值表与逻辑运算等价,唯一不同的是位操作是逐位进行运算的。
此级(5~13)均为单目运算,且都为右结合
* 14.乘
/ 15.除
% 16.求余
+ 17.加
- 18.减
<< 19.左移
>> 20.右移
< 21.小于
<= 22.小于等于
> 23.大于
>= 24.大于等于
== 25.等于
!= 26.不等于
& 27.位与
^ 28.位异或
| 29.位或
&& 认为,逗号操作符和标准英语的and是同义词。
2.6.7关于优先级的小结
表2-10列出了C语言所有操作符的优先级,其中包括将在本书后面讨论的某些操作符。注意,所有操作符(除一元操作符和?之外)都是左结合的。一元操作符(*,&和-)及操作符“?”则为右结合。
?
C语言运算符大全
C语言共有34个运算符,今天闲来没事就找了一下,现在拿出来分享一下呵:
x=(y=3,y+1);
这行将3赋给y,然后将4赋给x,因为逗号操作符的优先级比赋值操作符优先级低,所以必须使用括号。实际上,逗号表示操作顺序。当它在赋值语句右边使用时,所赋的值是逗号分隔开的表中最后那个表达式的值。例如,
y=10;x=(y=y-5,25/y);
执行后,x的值是5,因为y的起始值是10,减去5之后结果再除以25,得到最终结果。
;y=x>9?100:200;
例中,赋给y的数值是100,如果x被赋给比9小的值,y的值将为200,若用if-else语句改写,有下面的等价程序:
x=10;if(x>9)y=100;
;elsey=200;
;
有关C语言中的其它条件语句将在第3章进行讨论。
2.6.6 逗号操作符
作为一个操作符,逗号把几个表达式串在一起。逗号操作符的左侧总是作为void(无值),这意味着其右边表达式的值变为以逗号分开的整个表达式的值。例如:
表2-6给出于关系和逻辑运算符,下面用1和0给出逻辑真值表。关系和逻辑运算符的优先级比算术运算符低,即像表达式10>1+12的计算可以假定是对表达式10>(1+12)的计算,当然,该表达式的结果为Flase。在一个表达式中允许运算的组合。例如:
10>5&&!(10<9)||3<=4
这一表达式的结果为True。
signed:生命有符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
default:开关语句中的“其他”分支
goto:无条件跳转语句
sizeof:计算数据类型长度
volatile:说明变量在程序执行中可被隐含地改变
do :循环语句的循环体
while :循环语句的循环条件
如表2-8所示,当且仅当一个操作数为True时,异或的输出为True,否则为Flase。
位操作通常用于设备驱动程序,例如调制解调器程序、磁盘文件管理程序和打印机驱动程序。这是因为位操作可屏蔽掉某些位,如奇偶校验位(奇偶校验位用于确保字节中的其它位不会发生错误通常奇偶校验位是字节的最高位)。
通常我们可把位操作AND作为关闭位的手段,这就是说两个操作数中任一为0的位,其结果中对应位置为0。例如,下面的函数通过调用函数read_modem(),从调制解调器端口读入一个字符,并将奇偶校验位置成0。
间接,取地址,类型转换,求大小由右向左
* / %乘,除,取模由左向右
+ -加,减由左向右
<< >>左移,右移由左向右
< <= >= >小于,小于等于,大于等于,大于由左向右
== !=等于,不等于由左向右
&按位与由左向右
^按位异或由左向右
|按位或由左向右
&&逻辑与由左向右
||逻辑或由左向右
? :条件由右向左
字节的位8是奇偶位,将该字节与一个位1到位7为1、位8为0的字节进行与操作,可将该字节的奇偶校验位置成0。表达式ch&127正是将ch中每一位同127数字的对应位进行与操作,结果ch的位8被置成了0。在下面的例子中,假定ch接收到字符"A"并且奇偶位已经被置位。
一般来说,位的AND、OR和XOR操作通过对操作数运算,直接对结果变量的每一位分别处理。正是因为这一原因(还有其它一些原因),位操作通常不像关系和逻辑运算符那样用在条件语句中,我们可以用例子说明这一点:假定X=7,那么x&&8为Ture(1),而x&8却为Flase(0)。
一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。
最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。
2.6.2自增和自减
static :声明静态变量
if:条件语句
?
C语言运算符分类
1级优先级(左结合)
() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级优先级(右结合)
!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
EXP1?EXE2:EXP3
3
EXP1,EXP2和EXP3是表达式,注意冒号的用法和位置。
操作符“?”作用是这样的,在计算EXP1之后,如果数值为True,则计算EXP2,并将结果作为整个表达式的数值;如果EXP1的值为Flase,则计算EXP3,并以它的结果作为整个表达式的值,请看下例:
x=10;
记住,关系和逻辑操作符结果不是0就是1。而相似的位操作通过相应处理,结果可为任意值。换言之,位操作可以有0或1以外的其它值,而逻辑运算符的计算结果总是0或1。
移位操作符>>和<<将变量的各位按要求向或向左移动。右移语句通常形式是:
variable>>右移位数
左移语句是:
variable<<左移位数
当某位从一端移出时,另一端移入0(某些计算机是送1,详细内容请查阅相应C编译程序用户手册)。切记:移位不同于循环,从一端移出的位并不送回到另一端去,移去的位永远丢失了,同时在另一端补0。
x=10;
;y=++x;
此时,y=11。如果程序改为:
x=10;y=x++;
则y=10。在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码
要快得多,所以尽可能采用加1或减1运算符是一种好的选择。
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
相关文档
最新文档