黑马程序员---学习笔记1:运算符

七分热度_HD 2015-08-05 07:09:51
写法规范:运算符两侧一般要加上一个空格,为了美观,易读。

1,运算符的定义:告诉编译器执行各种操作的符号。

2,分类:
(1)功能划分:算数运算符,关系与逻辑运算符,按位运算符。
(2)操作数划分:单目运算符a++,双目运算符a+b,三目运算符(?:)

3,优先级和结合性:

优先级:分15级,1级最高,15级最低,运算过程中,先做优先级高的运算,再做优先级低的工作, 同等优先级情况下按照运算符的结合性运算。




结合性:左结合a+b-c
右结合x=y=z

1)算数运算符,+,-,*,/(操作数为整型,结果是整型,若有一个实型,结果为双精度实型),%(操作数只能是整型)

2)求余运算符%,运算数必须是整数,m%n m除以n,取余数部分
注意事项:m和n都不能是小数,否则报错。
m< 0 结果为负数
n<0 结果无变化 ,正负性取决于m

3)算数运算符中的类型转换问题
(1)隐式类型转换(自动转换)
(2)显式类型转换(强制类型转换) (要转换成的类型)要转换的变量或者表达式。

注意事项: 一个大数加上一个特别小的数,使用float会有问题(造成数据丢失),float的有效数位只有7位,
强制类型转换是临时转换。
4)赋值运算符: 作用,把等号右边的数赋值给左边的变量(不能是常量和表达式),优先级:14,右结合
5)自增自减运算符:
前缀表达式:++x,后面必须跟变量不能是常量,先变化,再运算
后缀表达式,x--,先使用当前值,再发生变化
注意区分,表达式的值和a的值,int a=3;a++;表达式值3,a的值为4。若++a,表达式值为4
int a=3;(++a)-b+(++a),表达式的值不同操作系统会有不同,但是最终a=5,这个是确定的。
++3,和++(a+3)都是错误的,第一个运算数是常量,第二个运算数是表达式,表达式是有返回值的,相当于常量。
I++,表达式从左至右看,先看到i,表达式的值是i的值,
++i,表达式从左至右看,先看到++,表达式的值是+1后的值
6)sizeof运算符,不是函数,用法:sizeof(常量/变量),作用:计算常量、变量、数据结构在内存中占用的字节数。
小数后面加f,表示float类型,占4字节,单独的小数默认为double类型,占8字节
char 类型 占1字节,-128~127,
但是 char类型的常量存储是把字符转化成相对应的ascii码以int类型存储的,因此,占4字节。(!!!)
char类型变量,把字符的ascii码转化成二进制(1字节),进行存储。
sizeof用在常量和变量的时候可以省略括号。用在数据类型的时候不能省略
7)逗号表达式 用逗号连接表达式。
求值方式:对连接的每个表达式逐个求值,用最后一个表达式的值作为整个逗号表达式的值
注意:逗号表达式可以嵌套使用,使用是不太注重逗号表达式的值,注重的是在求值过程中,各个变量的变化(因为逗号表达式自左往右,依次运算,在求值过程中,会有变量的变化,这个需要注意)
8)关系运算符 比较两个数或者表达式之间的关系,有大于>,小于<,等于==,不等于!=,大于等于>=,小于等于<=
C语言中所有式子都有真假, 非0为真,是0为假 关系表达式的值只有两种真(1),假(0)。
优先级:第六级,>,<,>=,<=4个
第七级,==,!=2个(注意,她们是分为两个优先级的)
9)逻辑运算符
逻辑与 && 优先级11级, 表示多个条件同时成立 (同真为真,一假则假)
逻辑或 || 优先级12级,当有多个条件,只要有一个成立就可以
逻辑非 ! 优先级敏级,取反(0取反为1,非0取反为0)
逻辑运算符的短路问题:A&&B,如果A为假,B就不执行了,结果为假。A||B,如果A为真,B就不执行了,结果为真

10)三目运算符(条件运算符) 表达式1?表达式2:表达式3;
如果表达式1成立,返回表达式2的结果,否则返回表达式3的结果。
...全文
304 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
七分热度_HD 2015-08-16
  • 打赏
  • 举报
回复
给自己加油!

1,160

社区成员

发帖
与我相关
我的任务
社区描述
在CSDN学院遇到的问题反馈及对学院的改进建议等。
社区管理员
  • 软件培训社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧