C语言运算符
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
赋值运算符
用于将表达式的值赋给变量。是一个双目运 算符,运算符的左边必须是变量,右边是表 达式,赋值运算符(用=表示),用于将表 达式的值赋给变量,结合性是自右向左的。 例如:int i=5;是将常量值5赋给变量i.
赋值运算符=右侧可以是变量或表达式. 例如:int i=5,j=i;将变量i的值赋给变量j.
[注意事项]:
1、自增自减运算符的运算对象只能是变 量, 不能用于常量或表达式。 2、自增自减运算符既可以放在运算对象 的前 面(前缀),也可以放在运算对 象的后面(后缀),两者功能上略有不同 。 3、在表达式中包含自增、自减运算时, 要能 正确分析,否则很容易出错。
若i=5,请分析下面语句执行后j、i的值: j=i++; /*j的值为5,i的值为6*/ j=++i; /*j的值为6,i的值为6*/
“,”运算符用于将多个表达式串在一起,“,”运算符的左边 总不返回,右边表达式的值才是整个表达式的值。 例如: int x, y; x=50; y=(x=x-5, x/5);
经过上面的语句后,y值为9,因为x的初始值为50,减5后变为45, 45除5为9赋给y。
sizeof运算符
sizeof运算符
操作符 > >= < <= == !=
作用 大于 大于等于 小于 小于等于 等于 不等于
按位运算符
C和其它高级语言不同的是它支持按位运算符。 C中按位运算符的作用 :
操作符 & | ^ ~ >> <<
作用 位逻辑与 位逻辑或 位逻辑异或 位逻辑反
右移 左移
运算符说明
按位运算是对字节或字中的实际位进行检测、设置或移位 ,它只适用于字符型和整数型变量以及它们的变体,对其 它数据类型不适用。 关系运算和逻辑运算表达式的结果只能是1或0。而按位运 算的结果可以取0或1以外的值。 移位运算符“>>”和“<<”是指将变量中的每一位向右或 向左移动,其通常形式为:
右移:变量名>>移位的位数 左移:变量名<<移位的位数
经过移位后,一端的位被“挤掉”,而另一端空出的位以 0填补,所以,C中的移位不是循环移动的。
移位的使用技巧
可以代替乘法和除法运算,但速度远远快于乘法 和除法。
左移等效于乘法: 左移1位,即箭头向左,右侧补0,等于乘21, 左移两位等于乘 22,左移三位等于乘23
a>b&&x>y //(a>b)&&(x>y)
a==b||x==y //(a==b)||(x==y)
!a||a>b
//(!a)||(a>b)
初学者如果不熟悉逻辑运算符时,就可以写成上面的注释
中带括号的形式,这样就很容易区分和理解其中的各个表
达式。
关系运算符
关系运算符是比较两个操作数大小的符号 C的关系运算符作用对照表 :
赋值语句中的数据类型转换
在赋值语句中,类型转换规则是:等号右边的值 转换为等号左边变量所属的类型。 做除法运算时应特别注意 ,例如:
int i=15; float f =i/2;
运行后,f=7而并不等于准确值7.5
正确的做法应该是:
int i=15; float f =i/2.0;
也可直接将i定义为浮点数。
C语言运算符概述
运算符:是用来表示各种运算的符号。 表达式:用运算符将运算对象连接起来形成的运
算式。 C语言运算符:是一种向编译程序说明一个特定的
数学或逻辑运算的符号。运算符必 须有运算对象。 C语言运算符的分类
▪ 算术运算符 ▪ 关系运算符与逻辑运算符 ▪ 按位运算符
算术运算符
算术运算符的运算规则如下表所示:
x=50;
达式值为‘a’
y=x>70 ? 100 :x0>;y?1:/1/y.将5 被//x赋>值y 0,值。为1.0; x<y ,值为1.5
如果x=80,y将被赋值100。
“?”运算符可以代替某些if-else形式的语句。
“&”和“*”运算符
“&”和“*”运算符
“&”运算符是一个返回操作数地址的单目操作符。
后自减
--
先使用,后减1 数组下标
运算 结果
同运 算对 象的 类型
结合性
自右向 左
[举例说明]:若i为3,则执行后: (1)++i /*运算式的值为4,i的值为4 */ (2)i++ /*运算式的值为3,i的值为4 */ (3)--i /*运算式的值为2,i的值为2*/ (4)i-- /*运算式的值为3,i的值为2 */
逻辑运算符和表达式
逻辑运算符种类: ! (逻辑非) &&(逻辑与) ||(逻 辑或)
逻辑运算真值表:
C语言中,运算量: “真”,
运算结果: “真”,
0表示“假”, 0表示“假”,
非0表示 1表示
优先级: ! 高
结合方向: &&
||
低
! :从右向左 && :从左向右 || :从左向右
例 a<=x && x<=b // (a<=x) && (x<=b)
第三章
C语言运算符
回顾
变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 熟练使用 scanf() 和 printf() 函数
课程目标
算术运算符 增量运算符 逻辑运算符 关系运算符 按位运算符 C的特殊运算符 --“?” “&”和“*”, “,” 运算符的优先级
自增自减运算符都是单目运算符,是对单目整型 、字符型、指针型以及数组的下标等数据进行算 术运算的,运算的结果仍是原数据类型。
自增自减运算符的运算规则如下表所示:
对象数 名称 运算符
运算规则
运算对象
前自增 ++ 先加1,后使用 整型
单目
后自增 前自减
++ --
先使用,后加1 字符型 先减1,后使用 指针型
单目算术运算符优于双目算术运算符 “ *,/,% ”优于“+,-”; 同级单目算术运算符的结合性满足右结合,同级双目算 术运算符满足左结合。
C语言算术表达式
C语言算术表达式:
由算术运算符和括号将运算对象连接起来的、 符合C语法规则的式子称为表达式。运算对象 包括常量、变量和函数等。
[注意事项]:
在表达式求值时,先按运算符的优先级别高低 顺序执行。若在一个运算对象两侧的运算符的 优先级别相同,则按规定的结合性处理。 C语言中允许种类数值型数据之间进行混合运 算,在进行混合运算时,不同类型的数据要先 转换成同一类型,然后再进行运算。 字符型常量、字符型变量可以在算术表达式中 使用。
增量运算符
增量运算符
1、自增运算符:++
x=x+1 可写成x++, 或++x i++与++i的区别: x= i ++ 表示将i的值赋给x后, i加1。 x=++ i 表示i先加1后,再将新值赋给x。
2、自减运算符:- -
x=x-1 可写成x--, 或--x i - - 与- - i的区别: x= i -- 表示将i的值赋给x后, I减1。 x= -- i 表示i先减1后,再将新值赋给x。
<表达式1> ? <表达式2> : <表达式3>;
“?”运算符的含义是:先求表达式1的值,如果为真, 则求表达式2的值并把它作为整个表达式的值;如果表 达式1的值为假,则求表达式3的值并把它作为整个表 达式的值。
int x, y; 例 x?‘a’:‘b’ //x=0,表达式值为‘b’; x‡0,表
“*”运算符是对“&”运算符的一个补充,它返回位于这个地址内 的变量值,也是单目操作符。
例如: int i, j, *m; i=10; m=&i; j=*m;
/*将变量i的地址赋给m*/ /*地址m所指的单元的值赋给j*/
程序运行后,i=10,m为其对应的内存地址,j的值也为10。
“,”运算符
“,”运算符
对象数 名称 运算符 运算规则 运算对象 运算结果 结合性
正
+
单目
负
-
取原值 取负值
自右 向左
加
+
减
-
双目 乘
*
除
/
加法 减法 乘法 除法
整型或实型
整型或 实型
自左 向右
模
% 整除取余数 整型、字符型
注意事项
正、负运算是单目运算符,结合性是自右向左的 。 除法运算与运算对象的数据类型有关。若两个对 象都是整型数据,则运算结果是整数(舍弃小数 部分);若两个中有一个或两个都是实型,则运 算结果为实型。但是若除数或被除数中有一个为 负值,则舍入的方向是不固定的。 模运算(%)要求两个运算对象必须均为整型数 据。 算术运算符优先级别
C运算符的优先级
表达式
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员) ! (逻辑非) ~(位取反) -(负号) ++(加1)
--(减1) &(变量地址 ) * (指针所指内容) type(函数说明) sizeof(长度计算) * (乘) /(除) %(取模) + ( 加) -(减) << (位左移) >>(位右移) < (小于) <=(小于等于) > (大于) >=(大于等于) ==(等于) !=(不等于) &(位与) ^ (位异或) | (位或) &&(逻辑与) || (逻辑或) ?: (?表达式) = += -=(联合操作) , (逗号运算符)
int i=4; int c=i<<1; //c=8 右移等效于除法: 右移1位,即箭头向右,左侧补0,等于除21,右移两位等于除 22,右移三位等于除23 int i=16; int c=i>>3; //c=16/ 23 =2
C的特殊运算符
“?”运算符
源自文库
“?”运算符是一个三目运算符,其一般形式是:
sizeof运算符是一个单目运算符,它返回变量或类型的 字节长度。 例如: sizeof(double) 为8 sizeof(int) 为2
也可以求已定义的变量, 例如: float f; int i; i=sizeof(f);
则i的值将为4。
C运算符的优先级
C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符参加运算时,将按下表 所规定的优先级进行运算。表中优先级从上往下逐渐 降低,同一行优先级相同。 例如: 表达式 10>4&&!(100<99)||3<=5 的值为1 表达式 10>4&&!(100<99)&&3<=5 的值为0
优先级
最高
最低
本章总结
算术运算符 增量运算符 逻辑运算符 关系运算符 按位运算符 C的特殊运算符 --“?” “&”和“*”, “,” 运算符的优先级