C语言基础知识学习(二)

来源:互联网 发布:workbanch 导出mysql 编辑:程序博客网 时间:2024/06/06 02:16

C语言基础知识学习之运算符



一.运算符

1运算符及分类

 

运算符是特定的算术或者逻辑符号。

 

1)按功能分类

算术运算符、关系运算符、逻辑运算符和按位运算符。

2)按操作数的个数分类

单目运算符、双目运算符和三目运算符。

 

2运算符的优先级

 运算符的优先级分15等级,1级最高,15级最低。

表达式中,优先级高的的先于低的运算,优先级相同的时候,按照运算符的结合性运算。

 

3运算符的结合性

 

左结合:多个同级优先级的运算符,从左向右运算。比如算数运算符。

右结合:与左结合相反,比如赋值运算符。


4表达式

      表达式:将同类型的数据(常量,变量和函数等)用运算符按照一定规则连接起来的式子。表达式一定有返回值。

      表达式后加分号,构成表达式语句。

1)表达式分类

    算术表达式、关系表达式和逻辑表达式。

 

5常用运算符

1) 算数运算符(左结合):+ - * / %

操作数为int型时,结果取整,如果有一个为实数类型,结果为双精度实数

m/n取余的时候结构正负性取决于m

 

2)赋值运算符(右结合)  =

作用:把等号右侧的值赋值给左侧的变量。

               变量=值(或表达式);

注意:等号左侧一定是变量,不能是表达式

 

3) 复合赋值运算符  +=……

先运算后赋值。

a + = 3 作用和  a=a+3;作用一样

 

4) 自增自减运算符    i++; i--++i--i

 

i++++i的区别:

前缀表达式  ++i作用和i=i+1一样 

先让变量i自增,之后用自增之后的i值作为表达式的值

后缀表达式  i++

先用i值作为表达式的值,之后i的值再自增


5sizeof运算符)

作用:给出操作数的存储大小。单位(字节)

用法: sizeof(数据类型/常量/变量/结构体)

注意:sizeof不是函数,编译时进行

 

6) 逗号运算符

作用:把两个表达式连接到一起,形成逗号表达式。

求值过程:分别求每个表达式的值,以最后的表达式的值作为整个表达式的值。

  Int  a=4b=6c=7

Int  result =a+1b+1c+1);逐个求值 最后把c+1的值赋值给result

 

逗号表达式不注重求值的结果,注重求值过程中哪些变量的值发生了变化。

 

7) 关系运算符(左结合)><>=<===!=

 

所有的数值都有真假性,非0即真,只有0为假。

关系运算符的返回值只有01.

 

8) 逻辑运算符 (或)||&&(与)、(非)!

 

或(左结合):两个表达式只要有一个真值,整个表达式的值就为真。

             短路或:前一个表达式的值为真,后面表达式就不进行判断了

与(左结合):两个表达式的值都为真,整个表达式的值才为真。

       短路与:前一个表达式的值为假,后面表达式就不进行判断了

非(右结合):非真即假,非假即真。

 

9) 三目运算符(右结合)  ? :

 条件表达式? 表达式1:表达式2

如果条件表达式的值为真,表达式1的值为整个表达式的值。

如果条件表达式的值为假,表达式2的值为整个表达式的值。

注意:?和:是成对出现。


例如:

#include<stdio.h>int max(int a,int b){return a>b?a:b; }int main(){int a = 10,b = 20;printf("最大值为%d",max(a,b) );return 0;}

原创粉丝点击