运算符、表达式以及程序的书写规范

第四章

运算符、表达式以及程序的书写规范

本章主要讲明C语言的运算符与表达式,涉及到的知识内容有:
 C语言的34个运算符(可把这34种运算符分为10大类)。
 运算符的优先级,可以分为15个等级,1级为最高,15级最低。
 说明34种运算符(这10个类别)的用法 。
 由于中间会涉及到程序,会说明一下程序的书写格式,以保证降低程序的出错率。

4.1程序书写时的规范

1.每条语句后面必须要加“;”,这个分号必须是英文的。(这个分号是作为终止符,和中文里面的句号相同,因此每一句话结束必须要加分号。)
2.每个程序里面只能含有一个main主函数。
3.在C语言中输入程序是一定要注意,大小写字母是有一定的区别的,所以把大写的不能写成小写的,把小写的也不能写成大写的,否则这个程序会发生错误。
4.书写程序时,要习惯的应用注释。
5.虽然每行可以写入多条语句,但是尽量每行只写一条语句,这样可以使程序看的比较清楚。
6.书写程序时样注意适当的进行缩进。
7.程序中的花括号必须是成对出现的(如果只出现花括号的一半,会导致程序出现错误)。

4.2 C语言运算符

本小节主要讲C语言的运算符可以分为10大类,并且说明这10类的含义以及用法
这10类分别是:
 赋值运算符和赋值表达式
 逗号运算符和逗号表达式
 关系运算符和关系表达式
 算术运算符和算术表达式
 逻辑运算符和逻辑表达式
 条件运算符和条件表达式
 位操作运算符
 指针运算符和指针表达式
 求字节数运算符
 特殊运算符

4.2.1 赋值运算符和赋值表达式

  1. 赋值运算符的定义:将运算符左侧的值或者对象传递给左方的变量或对象。
  2. 赋值运算符可以分为3类:①基本赋值运算符②算术复合赋值运算符③复合赋值运算符
  3. 基本赋值运算符
    1) 基本赋值运算符:“=”
    2)基本赋值运算符的表达式:由“=”连接的式子称为赋值表达式
    3)基本赋值运算符的表达式: 变量=表达式
    4)基本赋值运算符表达式的功能:计算式的值再赋予左边的变量,赋值运算具有右结合性
    5)基本赋值运算符的使用:

在这里插入图片描述
4.算术复合赋值运算符
1)算术复合赋值运算符的定义:在赋值符“=”之前加上算术运算符可构成算术复合赋值表达式,算术复合赋值表达式的这种写法,有利于编译处理,能提高编译效率并产生质量较高的目标代码。
2)算术复合赋值表达式的表示方法:
变量 算术运算符(除自增和自减)=数字或者是表达式
eg:a+=a 等于a=a+a a-=a等于a=a-a a*=a等于a=aa a/=a等于a=a/a
a%=a等于a=a%a
3)算术复合赋值运算符的使用方法:
在这里插入图片描述
a = a -= a /= a += a;
这条语句的意思是先算出a+=a的值,a=a+a=20,a的值变为了20,然后算出a/=a为a=a/a=1
这是a的值变为了1,然后再算出a-=a的值,就为a=a-a=0,这是a这个变量变为了0,然后算出a
=a的值,为a=a
a=0,所以最后a的值为0.
4)在使用算术复合赋值运算符时一定要注意的是,变量的值是可以改变的,如果每一次运算后,都赋予一次值给同一个变量,那么这个变量的值一定要改变,而不能把变量看成常量,如果看成常量,这个运算结果会出现错误。
5.复合赋值运算符
1)复合赋值运算符的定义:在赋值符“=”之前加上位运算符可构成复合赋值表达式,复合赋值表达式的这种写法,有利于编译处理,能提高编译效率并产生质量较高的目标代码。
2)复合赋值运算符有:&=(与运算赋值)^=(异或运算赋值)|=(或运算赋值)
<<=(左移赋值)>>=(右移赋值)
eg:a&=b等于a=a&b a=b等于a=ab a|=b等于a=a|b a<<=b等于a=a<>=b等于a=a>>b
3)复合赋值表达式的使用
在这里插入图片描述
a<<=b等于a=a<<b,因为a=10,b=3.<<乘以2,由于b的值为3,所以a等于a乘以2的三次方,10乘以8,运行结果为80
在这里插入图片描述

4.2.2 逗号运算符与逗号表达式

1.逗号运算符的定义:“,”称之为逗号运算符,有可以称之为顺序求值运算符。
2.逗号表达式的定义:用逗号运算符将若干个表达式连接起来的这种式子,我们把它称之为逗号表达式。
3.逗号表达式的一般形式:表达式1,表达式2,…,表达式n;
4.逗号表达式的结合性为左结合性,即从左向右的顺序去求值
5.逗号运算符和表达式的使用:
在这里插入图片描述
在这里插入图片描述

4.2.3 关系运算符和关系表达式

1.关系运算:关系运算是对两个运算量进行比较的运算
2.关系运算符:比较两个量大小关系的运算符称之为关系运算符
3.关系表达式:是用关系运算符将两个表达式连接起来的式子,称之为关系表达式。
4.关系运算符总共有六种,分别是:>(大于)>=(大于等于)<(小于)<=(小于等于)
==(等于)!=(不等于)
5.关系表达式的值不是真的就是假的,其中1为真,0为假。当关系表达式成立时,关系表达式的值为真;当关系表达式不成立时,则关系表达式的值为假。
eg:a=(b>=3),b的值为5。先算出b>=3的值,b>=3的值为真,结果为1,将b>=3赋值a,所以a的值为1。
6.关系表达式的使用:
在这里插入图片描述
运行结果为

在这里插入图片描述

4.2.4 算术运算符和算术表达式

1.算术运算符可以分为两类。一类是基本算术运算符,另一类是自增自减运算符。
2.基本算术运算符
1)基本算术运算符包括:+(加)、-(减)、*(乘)、/(除)、%(求余/取模:求余数)、-(负号)、+(正)前五个为双目运算符(参与运算的量有两个)后 两个为单目运算符(参与运算的量只有一个)。
2)基本算术运算符的使用
在这里插入图片描述
运算结果为 :
在这里插入图片描述
3.自增、自减运算符
1)自增、自减运算符包括:++(自增运算符,自增1)–(自减运算符,自减1)
2)自增、自减运算符的用法:a++(自增符号在后面,则a的值为自增后的值,b输出的值为原始a的值),那如果是++a(自增符号在前面,a的值为自增后的值,b输出的值也为自增后的值)
3)如何在程序中使用自增、自减运算符
在这里插入图片描述
运算结果为 :
在这里插入图片描述

4.2.5 逻辑运算符和逻辑表达式

1.逻辑表达式的定义:用逻辑运算符将运算的对象连接起来的这种式子称之为逻辑表达式。
2.逻辑运算符包括逻辑与(&&)、逻辑或(||)、逻辑非(!)
3.逻辑与(&&)和逻辑或(||)这两个为双目运算符,逻辑非(!)为单目运算符
4.逻辑表达式大多数用在if语句中。
5.逻辑与(&&):当有两个表达式参与运算时,如果一个表达式的值为真,另一个表达式的值为假,那么这个逻辑表达式的值为假。如果两个参与运算的表达式的值都为真,那么这个逻辑表达式的值为真。
6.逻辑或(||):当有两个表达式参与运算时,两个表达式中只有一个为真,则逻辑表达式的值为真,如果两个表达式的值为假,则结果为假。
7.逻辑非 (!):当表达式为真时,运算结果为假。当表达式的值为假时,则表达式的运算结果为真 。
8.逻辑运算符的使用 :
在这里插入图片描述
运算结果为:
在这里插入图片描述

4.2.6 条件运算符和条件表达式

1.条件运算符是由?和:组成,这两个符号是一个整体,它不能分开使用。
2.条件运算符是一个三目运算符(有三个量参与运算),它也是唯一的一个三目运算符。
3.条件表达式的一般形式:表达式1?表达式2:表达式3
4.条件表达式的使用方法:当表达式1的值为真,则表达式2为这个条件表达式的值。若表达式1的值为假,则表达式3为这个条件表达式的解。
5.如何在程序中使用条件表达式:
在这里插入图片描述
运行结果为:
在这里插入图片描述

4.2.7 位操作运算符

1.位操作运算符总共有六种,分别是:&(按位与)|(按位或)^(按位异或)~(按位取反)
<<(左移)>>(右移)
2.位:二进制位是计算机中最小的单位。
3.按位与(&):是双目运算符。当有两个数值参与运算时,先把十进制转换为二进制数,将两个数的二进制位数意义对应,对应后呢,如果有两个相同的数对应,则为相同的数,若干有一个不同则为0.
4.按位与的使用:
在这里插入图片描述
运算结果为:
在这里插入图片描述
运算步骤:先把x的值和y的值转换为二进制。
10的二进制为数为00001010,8的二进制数为00001000
在这里插入图片描述

由于8的二进制数等于00001000,所以运行结果为8
5.按位或(|):是双目运算符。当有两个数值参与运算时,先把十进制转换为二进制数,将两个数的二进制位数意义对应,对应后呢,进行或运算,有一个相同的数,则结果为1,若果对应的两个数都为0,则对应后也为0。
6.按位或在程序中的使用:
在这里插入图片描述
运算结果为:
在这里插入图片描述
运算步骤:先把x的值和y的值转换为二进制。
10的二进制为数为00001010,8的二进制数为00001000
在这里插入图片描述
由于10的二进制数等于00001010,所以运行结果为10
7.按位异或:当有两个量参与运算时,先把这两个量转换为二进制数,将数字一一对应,如果两个数相同,则结果为0,如果不同则结果为1.
8.按位异或的使用:
在这里插入图片描述
运行结果为:
在这里插入图片描述
运算步骤:先把x的值和y的值转换为二进制。
10的二进制为数为00001010,8的二进制数为00001000

在这里插入图片描述
由于2的二进制数等于00000010,所以运行结果为2
9.左移(<<):向左移移1位,向当于乘以2的1次方。向左移几位,相当于乘以2的几次方。
10.左移的使用:
在这里插入图片描述
运算结果为:
在这里插入图片描述
11.右移:向右移1位,向当于除以2的1次方。向右移几位,相当于除以2的几次方。
12.右移的使用:
在这里插入图片描述
运行结果为
在这里插入图片描述
13.按位取反:这是一个单目运算符,具有右结合性。将十进制数先转换为一个二进制数,对这个二进制数进行按位取反,也就是将0变为1,1变为0。

4.2.8 指针运算符

1.指针运算符总共有两种,一种是间接运算符(),另一种是取地址运算符(&)。
2.(
)间接运算符,也就是指针。指向内存中的某一个变量。
3.取地址运算符(&):如果给变量没有给值,可以利用取地址运算符在键盘上取一个地址,将这个地址赋予给那个变量。

4.2.9 求字节运算符

1.求字节运算符:就是关键字里面的sizeof。
2.求字节运算符可以求出数据类型或者是变量大小在编译器中所占的子节点位数。
3.求字节运算符的使用方法
在这里插入图片描述
运行结果为:
在这里插入图片描述

4.2.10 特殊运算符与特殊表达式

1.特殊运算符总共有4种,分别是括号()、数组[]、以及两种成员的访问方式(“->”、“.”)

4.3运算符的优先级

1.运算符的优先级总共可以分为15个等级,1级为最高,15级为最低的。
2.运算符优先级的排序
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值