C语言从零开始3

mac2025-02-16  7

运算符与表达式

C语言的各种运算都是在表达式中完成的。表达式是由运算符将各种类型的变量,常量,函数等运算对象 按一定的语法规则连接而成的式子,它描述了一个具体的运算过程。

运算符的优先级和结核性

优先级:即在执行表达式时,各运算运行的先后顺序 结核性:即同一优先级运算的方向

算术运算符和算术表达式

算数运算符
++ 自加 优先级2 -- 自减 优先级 2 右结合性 - 负号 优先级2 * 乘号 优先级3 / 除号 优先级3 左结合性 % 求余 优先级三 + 加号 优先级4 左结合性 - 减号 优先级4

说明:求余运算的数据必须都是整形数据,且余数的符号与只分子的符号一致

算术表达式

1.由算术运算符,括弧,内部函数以及数据组成的式子 2.算术表达式中不能出现C语言字符集意外的字符 3.没有乘方运算符,要计算a的三次方,aaa或pow(a,3)

赋值表达式和赋值运算符

简单的赋值运算符记为“=”,用=连接的式子称为赋值表达式 赋值:

实型赋值整型,舍弃小数部分 整型赋值实型,整数部分不变,增加小数部分 字符型赋值整型,由于字符型为一个字节,而整型位两个字节,故将字符型的ASCLL的码 放到整型的后八位中,前八位位0 整型赋值字符型,会出现数据流失

复合算数赋值

+= -+ *= /= 优先级14 右结合性

关系运算符与逻辑运算符

关系运算符
< 小于 <= 小于或等于 6级 左结合性 > 大于 >= 大于或等于 == 等于 七级 左结合性 != 不等于

关系表达式的值是“真”和“假”,用“1”和“0”表示

逻辑运算符和逻辑表达式

逻辑运算符
! 逻辑取反,操作数为0,结果为1;操作数为1,结果为0 2级 右结合性 && 逻辑与,两操作数都为非0时,结果为1,否则为0; 11级 左结合性 || 逻辑或,当两操作数都为0时,结果为0;其他情况都去1 12级 左结合性
逻辑表达式具有短路特性

逗号运算符(优先级最低)

“,不仅是一个分隔符还是一个表达式 表达式1,表达式2,表达式3,…表达式n 其求值过程是从左到右以此计算表达式1,2,3…n,最好依照表达式n的值作为整个逗号表达式的值

位运算符

一个字节=8位(bit)

位运算符
~ 取反 2级

注意:按位取反是依照补码取反 如:8 二进制: 00001000 补码 : 00001000 按位取反 : 11110111 转换为原码: 转换为反码:10001000 转换为原码:10001001=>10进制-9 负数同理

& 按位与 8级

参与运算的对应位均为1其结果位1,否则为0

按位或

参加运算的两个运算量相对应位中有一个位1,结果位1,否则位0

~按位异或

参加运算的两运算量相异时为1,反之为0

<<左移运算

把”<<“左边的运算数的各二进制位全部左移,由”<<“右边的数指定移动的位数,并且高位丢弃,低位补0

>>右移运算

把”>>‘左边的二进制全部右移,由“>>”右边的数字指定移动的位数。对于有符号位,右移时,符号位将随之移动。当为正数时,最高位补零。当为负数,最高位补0或补1取决于编译系统的规定

复合运算符
&= <<= >>= |= ^=
最新回复(0)