您的位置:首页 > 编程语言 > C语言/C++

C++笔记 day003-------基础知识回顾

2013-04-18 17:34 267 查看
c++操作符一般都是内置类型的,我们还可以自己重载这些操作符用于非内置类型的。

ey:friend ostream& oprator<<(ostream &os,ClassName<T>&g) //重载“<<”运算符,

这节主要回顾C++语言定义的针对内置类型的操作符:

首先要学习一下表达式:表达式是由 操作数operand 和操作符operator 表示,

           表达式的结果是右值,可以读取该结果值,但是不允许对它进行赋值

operator:

  c++提供一元操作符 和 二元操作符

  一元操作符:作用在一个操作数上的操作符,如&:取地址操作符,*引用操作符,

  二元操作符:作用在两个操作数上的操作符,如+:加法操作,-:减法操作

注意:1.像* 可以作 引用操作符,是一元的;也可以是乘法操作,是二元的;等其他的操作符;

   2.c++提供的操作符对操作数的类型是有要求的,例如(*)引用操作符必须要求操作数类型是指针类型;

   3.对于二元操作数而言,必须是两个操作数的类型一致,或者类型可以转换成同一个类型。

优先级 precedence

  表达式的值取决于其子表达式是如何进行分组的。

  1.一元操作符的优先级是最高的,其次是 乘 和 除,再是二元的加减法操作

  2.操作符都是左结合:当两个操作符优先级相同,从左到右依次进行操作符操作。

  3.圆括号()凌驾于优先级之上。

算术操作符:

  + 一元正号,+a;//代表正数a

  - 一元负号,-a;//代表负数a

    ey:int i=1;

      int k=-i;

* / % 分别是:乘法,除法,求余

  + - 分别是:加法,减法

  除法(/):对两个整数做除法,结果认为整数,如果他的商包含了小数,则小数部分会被截除

    ey:int i=21/6;//i=3;

     int j=27/7;//j=3;

  求余 求模(%):用于计算左操作数除以右操作数的余数,

    注意:该操作符的操作数的类型必须是整型,bool char short long int

    int i=42;

    i%4;//result is 2

/////////////////////////////////////////////////////////////////

如果两个数都是正数,除法/和求模%结果都是正数或零;

如果两个数都是负数,除法/的结果是正数或者零,求模的结果则是负数或者零;

如果只有一个操作数是负的,则除法/的结果是负数或零,求模取决于机器;

  ey: 21%-5;//result :if is 1,else is -4;

     %结果取决于依据分子还是分母。

/////////////////////////////////////////////////////////////////

注意:算术运算符要考虑两点:

  1.除零操作,数学特性导致

  2.溢出,超出了其类型表示的范围;计算机的特性

    ey://16bit

      short value=32767;

      short a=1;

      a=a+value;//overflows,a=32768,

     cout<<a<<endl;

      溢出时对于不同的机器获得的值是不相同的,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: