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。

0 0
原创粉丝点击