C语言中的运算符优先级和结合性一览表

目录
  • 运算符优先级和结合性一览表
  • 上表中可以总结出如下规律
  • 总结

所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁。

运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符()和逗号运算符

简单记就是:

! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。

此外运算符还有“目”和“结合性”的概念,这个很简单。“目”就是“眼睛”的意思,一个运算符需要几个数就叫“几目”。比如加法运算符+,要使用这个运算符需要两个数,如 3+2。对+而言,3 和 2 就像它的两只眼睛,所以这个运算符是双目的。

C语言中大多数的运算符都是双目的,也有单目和三目的。

单目运算符比如逻辑非,如!1,它就只有一只眼睛,所以是单目的。

整个C语言中只有一个三目运算符,即条件运算符? :

那么“结合性”是什么呢?

上面讲的优先级都是关于优先级不同的运算符参与运算时先计算谁后计算谁。

但是如果运算符的优先级相同,那么先计算谁后计算谁呢?

这个就是由“结合性”决定的。

运算符优先级和结合性一览表

上表中可以总结出如下规律

1、结合方向只有优先级2、13、14三个是从右往左,其余都是从左往右。

2、所有双目运算符中只有赋值运算符的结合方向是从右往左。

3、另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是所有单目运算符,一个是三目运算符。

4、C语言中有且只有一个三目运算符。

5、逗号运算符的优先级最低,要记住。

6、此外要记住,对于优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。逻辑运算符中“逻辑非 !”除外。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C语言运算符的优先级和结合性实例详解

    运算符是告诉编译程序执行特定算术或逻辑操作的符号.C语言的运算范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理.主要分为三大类:算术运算符. 关系运算符与逻辑运算符.除此之外,还有一些用于完成特殊任务的运算符. 先来看一个例子: #include <stdio.h> int main(){ int a=10,b=1,c=2; a=b=c; printf( "12+3*5=%d\n", 12+3*5); printf( "a=%d, c=%

  • C语言运算符深入探究优先级与结合性及种类

    目录 1.常用运算符分类 2.算术运算符 3.赋值运算符 4.比较运算符 5.逻辑运算符 6.运算符优先级 7.运算关系转换 1.常用运算符分类 2.算术运算符 代码: #include <stdio.h> #include <math.h> int main(void) { int a = 10; // 确定 a的值. int b = 20; // 确定 b的值. int C,D,E,F,G,H,I,J,K,L,M; //定义 C,D,E,F,G,H,I. C=a+b; //相加

  • C语言中的运算符优先级和结合性一览表

    目录 运算符优先级和结合性一览表 上表中可以总结出如下规律 总结 所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁. 运算符的优先级从高到低大致是:单目运算符.算术运算符.关系运算符.逻辑运算符.条件运算符.赋值运算符()和逗号运算符 简单记就是: ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符. 此外运算符还有“目”和“结合性”的概念,这个很简单.“目”就是“眼睛”的意思,一个运算符需要几个数就叫“几目”.比如加法运算符

  • 简单总结C语言中的运算符优先级

    C语言中有很多运算符,除了四则运算,还有位运算.比较运算.逻辑运算.赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼.通常建议在写代码的时候不用省略括号,但是并不是所有程序员都会按照这个规矩来,因此还是有必要记录一下,以备查阅. 总结几个比较重要的原则: 取成员的"0"目运算符[() . -> []]优先级最高: 单目运算符高于双目运算符: 四则运算高于移位运算: 移位运算高于比较运算: 比较运算高于位运算,位运算高于逻辑运算: 逻辑运算高于赋值运算: 逗号永远最低.

  • C语言中的操作符优先级的详细介绍

    C语言中的操作符优先级的详细介绍 C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. OperatorsAssociativity(结合性) 1. () [] -> . 左->右 2. ! ~ ++ -- + - *(type)sizeof 右->左 3. * / % 左->右 4. + - 左->右 5. << >> 左->右 6

  • C++中的运算符和运算符优先级总结

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和其他运算符. 算术运算符 下表显示了 C++ 支持的所有算术运算符. 假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符 描述 实例 + 把两个操作数相加 A + B 将得到 30 - 从第一个操作数中减去第二个操作数 A - B 将

  • JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结

    本文实例讲述了JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作.分享给大家供大家参考,具体如下: Js 中的运算符优先级 优先级依次降低 () !.-.++.– *./.% +.- <.<=.<.>= ==.!=.===.!==. && || ?: =.+=.-=.*=./=.%= URL 编码和解码 encodeURIComponent() decodeURIComponent() encodeURI() decode

  • C语言中的逗号运算符详解

    目录 C语言中的逗号运算符 C语言中的逗号运算符 在C语言中逗号“,”也是一种运算符,称为逗号运算符. 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式.其一般形式为:表达式1, 表达式2其求值过程是分别求两个表达式的值,并以表达式2(即最右边的一个表达式)的值作为整个逗号表达式的值. #include<stdio.h> int main() {         int i ,a;     i =(a=2*3, a*5), a+6;      printf("%d&quo

  • C语言运算符优先级列表(超详细)

    每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 +

  • C语言中左移和右移运算符详细介绍

    C语言中左移和右移运算符详细介绍 左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位. 右移运算符(>>) 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0. 对于有符号数,某些机器将对左边空出的部分用符号位填补(即"算术移位"),而另一些机器则对左边空出

随机推荐