软件发布| 专题库| 优优资讯| 苹果专区| 安卓专区| 软件下载| 首页
优优资讯 电脑教程 安卓教程 安卓攻略 苹果教程 苹果攻略 新闻资讯

C语言入门教程之运算符

时间:2015-05-27 来源:本站整理 我要评论

  Turbo C的运算符非常丰富,主要分为三大类:算术运算符,关系运算符与逻辑运算符,按位运算符。除此之外,还有一些用于完成特殊任务的运算符。下面分别进行介绍。

  1.1 算术运算符

  Turbo C的算术运算符如下:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  操作符 作用

  ────────────────────────────

  + 加, 一目取正

  - 减, 一目取负

  * 乘

  / 除

  % 取模

  -- 减1

  ++ 加1

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  一、一目和二目操作

  一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。

  二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。

  在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。需要注意的是除法和取模运算。

  例如:

  15/2 是15除以2商的整数部分7

  15%2 是15除以2的余数部分1

  对于取模运算符"%", 不能用于浮点数。

  另外, 由于Turbo C中字符型数会自动地转换成整型数,因此字符型数也可以参加二目运算。

  例如:

  main()

  {

  char m, n; /*定义字符型变量*/

  m='c'; /*给m赋小写字母'c'*/

  n=m+'A'-'a'; /*将c中的小写字母变成大写字母'B'后赋给n*/

  ...

  }

  上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将小写字母变成大写字母,反之,如果要将大写字母变成小写字母,则用c+ 'a' -'A'进行计算。

  二、增量运算

  在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个运算符就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1,而"--" 则是操作数减1。

  例如:

  x=x+1 可写成x++, 或++x

  x=x-1 可写成x--, 或--x

  x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。

  x=m++ 表示将m的值赋给x后, m加1。

  x=++m 表示m先加1后, 再将新值赋给x。

  三、赋值语句中的数据类型转换

  类型转换是指不同类型的变量混用时的类型改变。

  在赋值语句中, 类型转换规则是:

  等号右边的值转换为等号左边变量所属的类型。

  例如:

  main()

  {

  int i, j; /*定义整型变量*/

  float f, g=2.58; /*定义浮点型变量*/

  f=i*j; /*i与j的乘积是整型数, 被转换成为浮点数赋给f*/

  i=g; /*g中的浮点型数转换成为整型数赋给i*/

  ...

  }

  由于Turbo C按上述数据类型转换规则, 因此在作除法运算时应特别注意。

  例如:

  main()

  {

  float f;

  int i=15;

  f=i/2;

  }

  上面程序经运行后, f=7并不等于准确值7.5。正确的程序应该是:

  main()

  {

  float f;

  int i=15;

  f=i/2.0;

  }

  也可直接将i定义为浮点数。

  1.2 关系运算符和逻辑运算符

  一、逻辑运算符

  逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。Turbo C的逻辑运算符如下:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  操作符 作用

  ─────────────────────────────

  && 逻辑与

  || 逻辑或

  ! 逻辑非

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  二、关系运算符

  关系运算符是比较两个操作数大小的符号。Turbo C的关系运算符如下:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  操作符 作用

  ─────────────────────────────

  > 大于

  >= 大于等于

  < 小于

  <= 小于等于

  == 等于

  != 不等于

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。Turbo C中true可以是不为0的任何值,而false则为0。使用关系运算符和逻辑运算符表达式时, 若表达式为真(即true)则返回1,否则,表达式为假(即false),则返回0。

  例如:

  100>99 返回1

  10>(2+10) 返回0

  !1&&0 返加0

  对上例中表达式!1&&0,先求!1和先求1&&0将会等于出不同的结果,那么何者优先呢?这在Turbo C中是有规定的。有关运算符的优先级本节后面将会讲到。

  1.3 按位运算符

  Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的位操作有些相似。

  Turbo C中按位运算符有:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  操作符 作用

  ────────────────────────────

  & 位逻辑与

  | 位逻辑或

  ^ 位逻辑异或

  - 位逻辑反

  >> 右移

  << 左移

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符型和整数型变量以及它们的变体, 对其它数据类型不适用。

  关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果可以取0或1以外的值。

  要注意区别按位运算符和逻辑运算符的不同,例如, 若x=7, 则x&&8 的值为真(两个非零值相与仍为非零),而x&8的值为0。

  移位运算符">>"和"<<"是指将变量中的每一位向右或向左移动, 其通常形式为:

  右移: 变量名>>移位的位数

  左移: 变量名<<移位的位数

  经过移位后,一端的位被"挤掉",而另一端空出的位以0 填补,所以,Turbo C中的移位不是循环移动的。

  1.4 Turbo C的特殊运算符

  一、"?"运算符

  "?"运算符是一个三目运算符, 其一般形式是:

  <表达式1>?<表达式2>:<表达式3>;

  "?"运算符的含义是: 先求表达式1的值,如果为真,则求表达式2 的值并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值并把它作为整个表达式的值。

  例如:

  main()

  {

  int x, y;

  x=50;

  y=x>70?100:0;

  }

  本例中, y将被赋值0。如果x=80, y将被赋值100。

  因此, "?"运算符可以代替某些if-then-else形式的语句。

  二、"&"和"*"运算符

  "&"运算符是一个返回操作数地址的单目操作符。

  "*"运算符是对"&"运算符的一个补充, 它返回位于这个地址内的变量值,也是单目操作符。

  例如:

  main()

  {

  int i, j, *m;

  i=10;

  m=&i; /*将变量i的地址赋给m*/

  j=*m; /*地址m所指的单元的值赋给j*/

  }

  上面程序运行后, i=10, m为其对应的内存地址, j的值也为10。

  三、","运算符

  ","运算符用于将多个表达式串在一起, ","运算符的左边总不返回,右边表达式的值才是整个表达式的值。

  例如:

  main()

  {

  int x, y;

  x=50;

  y=(x=x-5, x/5);

  }

  上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给y。
 

用户评论

(已有0条评论)
表情
注:您的评论需要经过审核才能显示哦,请文明发言!
还没有评论,快来抢沙发吧!
快速检索
0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z