首页  

c++运算符优先级和结合性     所属分类 c 浏览量 702
结合性 运算符

从左到右  :: () [] . -> &  
从右到左  ! ++ --  -(负) +(正) (type) * & sizeof new delete
从左到右  * / %
从左到右  +(加) -(减)
从左到右  << >>
从左到右  < <= > >=
从左到右  == !=
从左到右  & 
从左到右  ^ 
从左到右  |
从左到右  &&
从左到右  ||
从右到左  ?:
从右到左  = += -= *= /= %=
从左到右  ,



逗号运算符 从左到右求值,最后一个表达式的值,作为整个表达式的值 b = (a=2,a+1,++a,a+2); b的值为5 // a=2 b=2 b=(a=1,++a); // a=2 b=1 b=a=1,++a; 逗号运算符优先级最低 a?b:c?d:e 相当于 a?b:(c?d:e) % 取余 求模 符号跟被除数一致 short-circuit-evaluation 短路求值
https://gitee.com/dyyx/hellocode/blob/master/web/tech/cpp/demo/op001.cpp #include "iostream" using namespace std; int main(){ // 6 cout << 6%7 << endl; // -6 cout << -6%7 << endl; // 6 cout << 6%-7 << endl; int b,c = 1; int a=b=c+1; // 2 2 cout << a << " " << b << endl; a=1+2+3*4+5*6; // 45 cout << a << endl; // 98 cout << (1+'a') << endl; // -7 cout << (5/3 - 8) << endl; // 3 cout << (5%3*5/3) << endl; a=2; b = 3; b *=a+1; // b = b * (a+1) // 9 a=4>5; cout << a << endl; b=(5!=3)==(3>=2); cout << b << endl; a=2==3; b=3; c=a+3==b; cout << c << endl; // 1 cout << sizeof(char) << endl; // 4 cout << sizeof('A'+1) << endl; // 8 cout << sizeof(1.0+2) << endl; b = (a=2,a+1,++a,a+2); // 3 cout << a << endl; // 5 cout << b << endl; // 3 cout << (int)3.3 << endl; b=(a=1,++a); // 2 cout << a << endl; // 2 cout << b << endl; b=a=1,++a; // 2 cout << a << endl; // 1 cout << b << endl; int arr[3]{100,150,200}; int*p=arr; cout << (p-a) << endl; // 100 cout << *p++ << endl; cout << (p-a) << endl; // 150 cout << *(p++) << endl; // 200 cout << (*p)++ << endl; // 201 cout << *p << endl; return 0; }

上一篇     下一篇
c++构造函数

C++ this 指针

c语言中常见的内存错误

编译时指定宏参数

systemctl service chkconfig 之间的关系

Java实现简单的模板