黑马程序员技术交流社区

标题: C语言 运算符 [打印本页]

作者: luronghua    时间: 2016-7-12 20:22
标题: C语言 运算符
运算符

1、基本概念

  运算符是告诉编译程序执行特定算术或逻辑操作的符号。

2、分类

按照功能划分:

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

运算符根据参与运算的操作数的个数分为:

单目运算:只有一个操作数如 : i++ ! sizeof

双目运算:有两个操作数如 : a+b

三目预算:C语言中唯一的一个,也称为问号表达式 a>b ? 1 : 0

3、算术运算符包括:

+  -  *  /  %    特点: 什么样数据类型相互运算结果还是什么数据类型

[objc] view plain copy




4、类型转换问题

类型转换分为:隐式数据类型转换 和 显示数据类型转换

1)自动转换(隐式转换):

  自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:

(1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

(2)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转 成long型后再进行运算。

(3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成 double型,再作运算。

(4)char型和short型参与运算时,必须先转换成int型。

(5)在赋值运算中,两边数据类型不同时,右边的类型将转换为左边的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。

2)强制类型转换(显示转换):强制类型转换是通过类型转换运算来实现的。

其一般形式为: (类型说明符) (表达式) 在使用强制转换时应注意以下问题:

(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y 则成了把x转换成int型之后再与y相加了。

(2)无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

[objc] view plain copy



5、关系运算符

在程序中经常需要比较两个量的大小关系, 以决定程序下一步的工作。 比较两个量的运算符称为关系运算符。

关系运算符都是双目运算符,包括>(大于)  <(小于)  >=(大于等于)  <=(小于等于)  ==(等于)  !=(不等于)

6、逻辑运算符

C语言中提供了三种逻辑运算符:&&(与运算) ||(或运算) !(非运算)

逻辑表达式:

表达式 逻辑运算符 表达式 如:(a&&b)&&c

表达式的值:&&只要有一个是假的,表达式的值则为假的

      ||  只要有一个是真的,表达式的值则为真的

      !真变假,假变真

7、三目运算符

表达式1?表达式2:表达式3

如果表达式1为真,则以表达式2作为条件表达式的值,否则以表达式3作为条件表达式的值。




作者: kakam    时间: 2016-7-13 00:04
请问sizeof的用法?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2