c语言中增一或者减1可以作用与表达式上,C语言第二章:运算符

一、运算符的概念及分类

1、 运算符是告诉编译程序执行特定算数或逻辑操作的符号。

2、 分类

i、 功能:算数运算符,关系运算符与逻辑运算符,按位运算符

ii、 运算符根据参与运算的操作数的个数分为:单目运算符。双目运算符,三目运算

3、 运算符的优先级,结合性

a、 优先级分为15级

b、 结合性按照运算符的结合性的方向处理

2、 算数运算符

1、 包括:+ - * / % 注意他们的结合方式,都是双目运算符 %取余参与运算的数必须是整数,不能是其他的数

2、 注意除法的数据格式,如果两个操作数都是整数则结果也是整型

3、 算数运算符的优先级:

i、* / % 优先级比 + - 高一级 位于 第三级 ,优先级相同根据左结合

ii、求余运算的注意:

a、 规则

a1、m%n m除以n以后,取的余数部分,如10 % 4=2 ;

a2、m 可以等于0,n不能等于0 m> n

正常的求余m

注意:1)求余不可以使用实数(小数)

2)m<0 结果是负数

3)m>0 n< 0 结果是正数 ,结果的正负型只和左边有关,只和m有关

4、算数运算符的类型转换问题

1、分为:(自动)隐式类型转换和(显式)强制转换

2、(显式)强制转换 float f=34.8989; int i=(int)f

; //结果是34

根据数据的大小区转换。

注意事项:

1)。用一个大数加上一个小数,会丢失精度

2)数据转换是一种临时转换,不会改变他的数据

3、 赋值运算符

1、 什么是表达式?

答:用运算符按一定的规则链接起来,有意义的式子叫做表达式

2、 分类:算数表达式,关系表达式,逻辑运算符

注意:表达式一定要返回值

表达��式语句:表达式后面加上分号,构成表达式

3、 作用:把符号右侧的值给等号左边的变量-

4、 优先级(14级)

5、 结合性(自右向左结合)

注意:int a=b=c=10;//是错误的

答题的方式:先看数的优先级、在看他们的结合性

6、 复合赋值运算符:+= -+ *= /= %=

a、 先运算在赋值

b、 int z=4;z*=z+3;/ /z的结果是28,注意这个问题

4、 自增++,自减– 运算符

单目运算符 ,右结合的方向

++i前缀表达式,先运算在赋值

i++先赋值在运算

口诀:++a 先加后用

a++先用后加

注意:不管是a++还是++a 他们 a的值都会 +1

1)、自增自减不能用在常量上,如++5;++(a+3)

2.执行以下语句后,y 的值为(a)。

int x,y,z;

x=y=z=0;

++x || ++y && ++z;//因为||是短路或,只要前面的是真则不判断后面的数

A.0 B.1 C.2 D.不确定值

5、 sizeof运算符

sizeof是一种单目运算符

作用:计算常量,变量。数据结构在内存中占用的字节数

*、sizeof在常量的使用:

1、 sizeof(1)//计算常量1 在内存中占用的字节数 4

2、 sizeof(2.3f)//计算float类型的常量在内存中占用的字节数 4

3、 sizeof(3.25) //字节数 8

4、 sizeof(‘a’) //字节数 字符常量 4 字符变量 1个

4.1、 char类型的常量存储,在内存中是以它对应的ascII值存储97 int 存储。

4.2、 char 类型的变量是以把字符串的ASCII码转换为二进制(1字节)进行存储。

*2、用sizeof运算符计算变量在内存中占用的字节数

2.1、int a=10;

sizeof(a);//计算int类型变量占用的字节

注意点:sizeof用在常量和变量的时候是可以省略括号的 sizeof 10;

2.2、sizeof用于计算某一种数据类型在内存中占用的字节数

sizeof(int);//表示int类型的数据在内存中占用的字节数 4

sizeof(float);//表示float类型的数据在内存中占用的字节数 4

sizeof(double);//表示double类型的数据在内存中占用的字节数 8

sizeof(char);//表示char类型的数据在内存中占用的字节数 1-→表示字符变量

注意点:sizeof用在字符类型的时候是不可以省略括号的 sizeof(int);

6、 逗号运算符(最低的运算符)

1、 求值过程:(表达式1,表达式2,表达式3 ) 计算每一个表达式的值,并以最后一个表达式的值作为整个逗号表达式的最终值。

2、 概念:“,”是一个逗号运算符,逗号表达式就是用逗号链接的表达式

3、 int

a=4,b=5,result=0;

result=(a+4,b+3,a+b

);

结果就是:a+b等于result=9

2)、result=a+4,5+b,a+b;

结果是:result=a+4;//等于8;

4、 逗号运算符的使用注意:

a) 逗号运算符可以嵌套使用 result=(a++,(b+5,5+6,z=a+b));//结果是6;

b) a++,b++;这也是逗号表达式=⇒a++;b++;//简化代码

c) 我们并不在意整个逗号表达式的结果,看中的是求值过程中各个变量的值的变化。

d) 并不是所有出现逗号的地方都可以组成表达式,比如定义变量的时间。

7、 关系运算符(返回的要么是真,要么是假)

1、 非零即 1真,只有0为假

2、 比较两个数或者两个表达式之间的关系

分类:>, =, <=, == ,!=

结合性:

3、 关系表达式的值:1 ,0左结合(只有优先级相同的情况下才可以说结合性)

4、 关系运算符的优先级 > >= < <= == != 优先级由高到低。//一个=表示赋值,两个==表示等于。

8、 逻辑运算符 && || !

1、 逻辑表达式的一般形式:表达式 逻辑运算符 表达式

2、 逻辑表达式的值:0 1

3、 逻辑与 && (表示多个条件同时成立, “并且” “同时” “且”)左结合

4、 逻辑或 || (多个条件只要有一个成立就可以了,“或者”)左结合

5、 逻辑非 ! (取反) int a=3; result=!a;//result=0;!的优先级比较高

!结合性:右结合性 a&&b&&c 这个类型也是可以的

注意逻辑运算符的短路问题:只要可以判断出来,后面的就不判断了

9、 三目运算符 表达式?表达式1:表达式2;//条件表达式

1、int a,b;

max=a>=b?a:b;//这就是一个三目运算符

注意:在if语句中如果不适用{},则只能有一句的属于if,也就是说只有一个分号结尾是if的判断体。比如:if (x==y) t=x; x=y; y=t;//if (x==y) t=x; x=y; y=t;相当于 if(x==y){t=x;} x=y; y=t;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值