C语言程序设计笔记(四)
来源:互联网 发布:创维网络电视50价格 编辑:程序博客网 时间:2024/05/16 06:07
一、表达式
一系列运算符和算子的组合,用来计算一个值
运算符(operator)是指进行运算的动作,比如加法运算符”+”,减法运算符”-“。
算子(operand)是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值。
二、运算符优先级和结合性
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
()
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
–
自减运算符
–变量名/变量名–
单目运算符
*
取值运算符
*指针变量
单目运算符
&
取地址运算符
&变量名
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof(表达式)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数(取模)
整型表达式/整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
<<
左移
变量<<表达式
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值
变量<<=表达式
>>=
右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
三、计算时间差
输入两个时间,每个时间分别输入小时和分钟的值,然后输出两个时间之间的差也用几小时几分表示
interval.c
#include <stdio.h>int main(){ int hour1, minute1; int hour2, minute2; scanf("%d %d", &hour1, &minute1); scanf("%d %d", &hour2, &minute2); int t1 = hour1 * 60 + minute1; int t2 = hour2 * 60 + minute2; int t = t2-t1; printf("时间差是%d小时%d分。", t/60, t%60); return 0;}
四、求平均值
写一个程序,输入两个整数,输出它们的平均值
#include <stdio.h>int main(){ int a,b; scanf("%d %d", &a, &b); double c = (a+b)/2.0; printf("%d和%d的平均值=%f\n", a, b, c); return 0;}
五、优先级和结合关系
单目运算符
只有一个算子的运算符:+、-
注:赋值也是运算符,也有结果,a=6的结果是a被赋予的值,也就可是6
注:嵌入式赋值不利于阅读,容易产生错误,不要这么做
六、交换两个数的值
程序表达的是顺序执行的动作,而不是关系
a = b;b = a;
是依次执行的,结果使得a和b都得到原来的值
交换
t = a;a = b;b = t;
就像是交换两杯水里面的水一样需要第三个容器来存储
七、复合赋值和自增自减运算符
1.复合赋值
10个运算符,”+ - * / % >> << & | ^” 可以和赋值运算符”=” 结合形成复合赋值 运算符:”+=” “-=” “*=” “/=” “%=” “>>=” “<<=” “|=” “&=” “^=” a += 5
等价于a = a + 5
a *= b + c
等价于a = * (b + c)
a += a -= b + 3
等价于 a = a + (a = a - (b + 3))
2.自增自减运算符
1.介绍
++和–是两个特殊的运算符,它们是单目运算符,这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,它们的作用就是给这个变量+1或-1。
count ++;
等价于 count += 1;
等价于 count = count + 1;
注:该运算符的结合方向是“先右后左
2.前缀运算
放在变量的前面,叫做前缀形式
先使运算符对象的值增(减)1,然后再使用运算对象。
3.后缀运算
放在变量后面,叫做后缀形式
先使用运算对象,然后再使运算符对象的值增(减)1。
- C语言程序设计笔记(四)
- C语言程序设计入门(四)
- 《c++语言程序设计》笔记(四)
- C语言程序设计笔记(一)
- C语言程序设计笔记(二)
- C语言程序设计笔记(三)
- C语言程序设计笔记(五)
- C语言程序设计<四>
- C语言程序设计谭浩强版 四
- c语言程序设计现代方法(学习笔记)
- 《C语言程序设计》电子笔记
- C语言程序设计谭浩强版 十 四
- 《C语言程序设计》读书笔记(四)——函数与程序结构
- [C语言程序设计]学习笔记总体规划
- 《C语言程序设计现代方法》笔记
- C语言程序设计学习笔记一
- 《C语言程序设计现代方法》笔记
- C语言程序设计(谭浩强)
- memcached的长链接模式
- hadoop 2.5.2 完全分布式集群环境搭建 (3)
- codeforces 549G G. Happy Line(贪心)
- ueditor图片上传,以及图片路径保存进数据库
- vector容器常用方法
- C语言程序设计笔记(四)
- IO-字节流与字符流
- maven 之中央仓库和私有仓库实战
- LeetCode 题解(111): Longest Valid Parentheses
- 零基础项目制学习python(二)
- Algorithms—123.Best Time to Buy and Sell Stock III
- BestCoder #45 1003 Dylans loves tree
- 查看android程序的CPU和内存消耗情况
- 黑马程序员---多线程