首页 > 编程语言 >C++全部操作符优先级整理

C++全部操作符优先级整理

时间:2023-11-08 10:24:45浏览次数:33  
标签:... 按位 优先级 int 从左到右 C++ 操作符 flags

优先级 操作符 描述 例子 结合性
1 ()
[]
->
.
::
++
--
调节优先级的括号操作符
数组下标访问操作符
通过指向对象的指针访问成员的操作符
通过对象本身访问成员的操作符
作用域操作符
后置自增操作符
后置自减操作符
(a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...
从左到右
2 !
~
++
--
-
+
*
&
(type)
sizeof
逻辑取反操作符
按位取反(按位取补)
前置自增操作符
前置自减操作符
一元取负操作符
一元取正操作符
解引用操作符
取地址操作符
类型转换操作符
返回对象占用的字节数操作符
if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);
从右到左
3 ->*
.*
在指针上通过指向成员的指针访问成员的操作符
在对象上通过指向成员的指针访问成员的操作符
ptr->*var = 24;
obj.*var = 24;
从左到右
4 *
/
%
乘法操作符
除法操作符
取余数操作符
int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;
从左到右
5 +
-
加法操作符
减法操作符
int i = 2 + 3;
int i = 5 - 1;
从左到右
6 <<
>>
按位左移操作符
按位右移操作符
int flags = 33 << 1;
int flags = 33 >> 1;
从左到右
7 <
<=
>
>=
小于比较操作符
小于或等于比较操作符
大于比较操作符
大于或等于比较操作符
if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...
从左到右
8 ==
!=
等于比较操作符
不等于比较操作符
if( i == 42 ) ...
if( i != 42 ) ...
从左到右
9 & 按位与操作符 flags = flags & 42; 从左到右
10 ^ 按位异或操作符 flags = flags ^ 42; 从左到右
11 | 按位或操作符 flags = flags | 42; 从左到右
12 && 逻辑与操作符 if( conditionA && conditionB ) ... 从左到右
13 || 逻辑或操作符 if( conditionA || conditionB ) ... 从左到右
14 ? : 三元条件操作符 int i = (a > b) ? a : b; 从右到左
15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
赋值操作符
复合赋值操作符(加法)
复合赋值操作符(减法)
复合赋值操作符(乘法)
复合赋值操作符(除法)
复合赋值操作符(取余)
复合赋值操作符(按位与)
复合赋值操作符(按位异或)
复合赋值操作符(按位或)
复合赋值操作符(按位左移)
复合赋值操作符(按位右移)
int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;
从右到左
16 , 逗号操作符 for( i = 0, j = 0; i < 10; i++, j++ ) ... 从左到右

标签:...,按位,优先级,int,从左到右,C++,操作符,flags
From: https://www.cnblogs.com/eChorgi/p/17816756.html

相关文章

  • C++基础随笔记录
    函数-值传递函数调用时,实参传递给形参。值传递时,形参改变,不会改变实参函数-4种形式无参无返有参无返无参有返有参有返函数-声明作用:告诉编译器函数名称以及如何调用函数。函数的主体可以单独定义。函数可以多次被声明,但是函数的定义只有一......
  • C++ 容器之 Vector
    什么是Vector?向量(Vector)是一个封装了动态大小数组的顺序容器(SequenceContainer)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。容器特性顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序......
  • C++ 入门防爆零教程(上册)
    C++入门防爆零教程(上册)C++IntroductoryExplosionProofZeroTutorial(Volume\(1\))编写者:美公鸡(洛谷账号:beautiful_chicken233,电话:\(155****7747\),如有需要请随时联系)编写时间:\(2023.10.5\sim?\)地址:湖南省长沙市雨花区明升异城\(11\)栋\(3902\)出版社:美公鸡出版社P......
  • 关于C++中STL的简单入门(updating)
    前言:本篇文章将对STL(标准模板库)进行一个简单的介绍,以方便在算法竞赛中节省时间并方便使用。C++STL(标准模板库)是一套功能强大的C++模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++标准模板库的核心包括以......
  • 【Cpp 语言基础】C++中的 getline() 函数
    一、string类的getline函数(全局函数)getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。读入时第二个参数为string类型,而不是char*,要注意区别     getline()函数的定义如下所示    1.istream&getline(istream&is,string&str,ch......
  • C/C++ __builtin 超实用位运算函数总结
    以__builtin开头的函数,是一种相当神奇的位运算函数,下面本人盘点了一下这些以__builtin开头的函数,希望可以帮到大家。1__builtin_ctz()/__buitlin_ctzll()用法:返回括号内数的二进制表示数末尾0的个数//eg:#include<bits/stdc++.h>usingnamespacestd;intmain......
  • c++右值引用、移动语义、完美转发
    1. 左值、右值、左值引用以及右值引用左值:一般指的是在内存中有对应的存储单元的值,最常见的就是程序中创建的变量右值:和左值相反,一般指的是没有对应存储单元的值(寄存器中的立即数,中间结果等),例如一个常量,或者表达式计算的临时变量intx=10inty=20intz=x+y//x......
  • Windows10+VSCode+CMake+shell脚本编译C/C++程序
    一、概述想要在Windows10上做C++验证/编译类库,借助VSCode(其实这东西要不要都行,它就是来方便查看代码的)+CMake+shell脚本做程序的编译运行。下面写一个小例子记录一下准备工作:1.编译环境用的是mingw64,使用其再带的g++编译,ps:记得要配置其环境变量2......
  • 【01】安装与配置 C++/Visual Studio 22 | PDCurses on Windows
    参考:https://www.cnblogs.com/yapingxin/p/15936414.html实践、概括、优化:编译生成下载源码,解压后进入其中的wincon目录;如果需要为多个Platform(x86和x64)以及多个分支(Debug和Release),多复制备份几个wincon文件夹,分别命名好;编辑其中的Makefile.vc文件,在11行下新建一行,写入:PL......
  • 11 个最佳 C++ IDE(和代码编辑器)
    C++是一种功能强大、用途广泛的编程语言。它也可以是一个艰难的大师。这意味着在您的工具带中拥有正确的工具以帮助您更高效、更有效、更自信地编写代码至关重要。在为C++编程寻找最佳IDE或代码编辑器时,您应该从哪里开始?IDE选项列表几乎是无限的,很难判断哪个是最适合您的软......