关闭

C++基础---运算符

标签: c++运算符运算符优先级和结合性运算符的种类
350人阅读 评论(0) 收藏 举报
分类:

1. 运算符

1.1 运算符的定义

  • 运算符(也称操作符): 指可以进行运算操作的符号。
  • 运算符的作用:用于执行程序代码运算,会针对一个或以上操作数来进行运算,提供给运算符进行操作的数值称为操作数。

1.2 运算符的种类

  • 赋值运算符:作用是把某个常量或变量或表达式的值赋值给另一个变量。得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为它们出现在赋值语句的右边。常数只能作为右值
    (1)赋值运算符:“=”;
  • 算术运算符:有两个单目和五个双目运算符。
    (1)双目加法/单目正:“+”;
    (2)双目加法/单目负:“-”;
    (3)双目乘法:“*”
    (4)双目除法“/”;
    (5)双目取余:“%”;
  • 逻辑运算符:根据表达式的值来返回真值或是假值。
    (1)逻辑“与”:“&&”(当所有条件同时为真,逻辑判断才为真);
    (2)逻辑“或”:“||” (当任一个条件为真,逻辑判断即为真);
    (3)逻辑“非”“!”(当条件为假,逻辑判断为真);
  • 关系运算符:是先对两个表达式进行比较,然后返回一个真/假值。
    (1)大于:“>”
    (2)小于:“<”
    (3)大于或等于:“>=”
    (4)小于或等于:“<=”
    (5)等于:“==”
    (6)不等于:“!=”
  • 自增自减运算符:对变量的操作结果是增加1和减少1。
    (1)自增1:“++”
    (2)自减1“- -”
  • 复合赋值运算符:实际上是一种缩写形式,使得对变量的改变更为简洁。
    (1)加法赋值:“+=”
    (2)减法赋值:“-=”
    (3)乘法赋值:“*=”
    (4)除法赋值:“/=”
    (5)模运算赋值:“%=”
    (6)左移赋值:“<<=”
    (7)右移赋值:“>>=”
    (8)位逻辑与赋值:“&=“
    (9)位逻辑或赋值:”|=“
    (10)位逻辑异或赋值:“^=”
  • 条件运算符(三目运算符):唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。
    (1)<表达式1>?<表达式2>:<表达式3>
    在运算中,首先对表达式1进行真假判断,
    如果为真,则返回表达式2的值;
    如果为假,则返回表达式3的值。
    int a=1, b=2, c;
    c = (a>b) ? a : b; =>2
  • 逗号运算符:多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
    a=(b=2,c=7,d=5); => a=5
    a1=(++b,c- -,d+3); => a1=8

1.3 运算符的优先级和结合性

  • 运算符的优先级和结合性列表

    优先级 运算符 结合性
    1 ::
    2 .   ->   []   ()
    3 ++   - -   ~   !   -   +   &   *   ()   sizeof   new   delete   castname_cast< type >   单目运算符
    4 .*   ->*
    5 *  /   %
    6 +  -
    7 <<   >>
    8 <   <=   >   >=  
    9 ==   !=
    10 &
    11 ^
    12 l
    13 &&
    14 ll
    15 ? :
    16 =   *=   /=   %=   +=   -=   <<=   >>=   &=   l=   ^=
    17 throw
    18 ,

    注:结合性是指如果表达式中遇到相邻两个运算符是相同优先级,先做哪个僵持不下时,以结合性定夺。如a=b=1; “=”是赋值运算符, 查表在第16级,结合性是右结合,表示先做b=1,再做a=b,最后a的值等于b的值,都是1。


参考文献:
[1]《C++全方位学习》范磊——第五章
[2]《C++程序设计教程(第二版)》钱能——第四章
[3] 百度搜索关键字:C++运算符、运算符的种类、运算符的优先级和结合性

0
0
查看评论

C++中运算符总结

优先级 运算符 名称与含义 使用形式 结合方向 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指
  • yzhang6_10
  • yzhang6_10
  • 2016-07-11 20:36
  • 1903

C++:new运算符和new表达式详解

摘要:在C++中new是一个行为和语法都有点诡异的结构,它的语法上与其它C++语法不同,它在语义上却也经常引起人们的不解,尤其当用户自定义的new在使用的时候。本文试图回答作者在学习new的时候遇到的问题,同时这些问题也可能是大多数人首先遇到的问题。 目录 [隐藏] new 关键字 ...
  • cwchenwu88
  • cwchenwu88
  • 2012-05-27 14:59
  • 2268

C++学习笔记(十一):成员访问运算符(点运算和箭头运算)

成员访问运算符 点运算符“.”和箭头运算符“->”,都可以用于访问成员,其中点运算获取类对象的一个成员,箭头运算获取指针指向对象的成员。表达式ptr->men等价于(*ptr).mem:   string s = “hello”, ...
  • autocyz
  • autocyz
  • 2015-03-20 22:06
  • 2179

C++中的冒号运算符 ---- : 和 ::

冒号运算符
  • qq_36016407
  • qq_36016407
  • 2017-06-14 18:22
  • 499

c++ 常用运算符解析

是C++里的,是“域操作符”。比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。::一般还有一种用法,就是直接用在全局函数前,表示是全局函数。比如在VC里,你可以在调用...
  • qq_34981632
  • qq_34981632
  • 2016-12-27 17:14
  • 273

C++中的作用域解析运算符::

::的作用非常简单,就是当局部变量和全局变量名字重叠的时候,指定某变量一定是来自全局变量。 #include using namespace std; int result = 100; int main(){ int result = 10; if(true){ in...
  • psh24053
  • psh24053
  • 2012-05-21 23:39
  • 3117

什么是运算符?C++中算数运算符、关系运算符、逻辑运算符等常用运算符讲解

转自 http://edu.cnzz.cn/201512/98757d76.shtml 运算符是指用于在操作数上执行某种操作的符号,也就是参与运算的符号,如+(加法运算符)、-(减法运算符)等。运算符的使用通常和表达式是密不可分的,通常作为表达式的一个部分组合计算使用。C++语言中运算符...
  • kingvon_liwei
  • kingvon_liwei
  • 2017-03-25 15:12
  • 2437

C/C++作用域运算符::

::是运算符中等级最高的,它分为三种:全局作用域符,类作用域符,命名空间作用域符全局作用全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:   char ch; //全局变量   void sleep()   {   char ch; //局部变量 ...
  • dongxianfei
  • dongxianfei
  • 2016-12-26 10:25
  • 1351

C++的流插入运算符“<<”和流提取运算符“>>”的重载

C++的流插入运算符“<<”和流提取运算符“>>”是C++在类库中提供的,所有C++编译系统都在类库中提供输入流类istream和输出流类ostream。cin和cout分别是istream类和ostream类的对象。在类库提供的头文件中已经对“<<”和“>...
  • u010177286
  • u010177286
  • 2015-07-10 15:38
  • 2094

C/C++中的成员运算符(.)和指针运算符(->)

C语言中: 我们临时定义一个结构体: struct StuInfo{ int num; char name[20]; char sex; float score; }; //初始化两个结构体类型的变量,和一个指向定义结构体类型的指针变量 struct StuInfo student...
  • fengzei886
  • fengzei886
  • 2014-03-29 17:48
  • 2061
    个人资料
    • 访问:276357次
    • 积分:6241
    • 等级:
    • 排名:第4727名
    • 原创:158篇
    • 转载:0篇
    • 译文:0篇
    • 评论:24条