A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luronghua 中级黑马   /  2016-7-12 20:22  /  1174 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运算符

1、基本概念

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

2、分类

按照功能划分:

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

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

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

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

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

3、算术运算符包括:

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

[objc] view plain copy


  • int a = 10,b = 3, c = 0,d = 0,e = 0, f = 0;  
  • c = a + b;  
  • d = a - b;  
  • e = a * b;  
  • f = a / b;  


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


  • /*
  • 算术运算符中的类型转换问题
  •     1)隐式转换
  •     2)显式转换
  • */  
  •     //  1)   隐式转换:  
  •     //   f1        num  
  •     //   float     int  
  •       
  •     float f1 = 23.4f;  
  •     int num = 10;  
  •     float f2 = f1 + num;  
  •     printf("%d\n",f1 + num);  
  •     printf("%f\n",f2);  
  •     //  2)  显式转换:  
  •     //强制类型转换 :  (要转换的类型)(变量或者表达式)  
  •     printf("%d\n",(int)(f1 + num));  

5、关系运算符

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

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

6、逻辑运算符

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

逻辑表达式:

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

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

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

      !真变假,假变真

7、三目运算符

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

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



1 个回复

倒序浏览
请问sizeof的用法?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马