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

 更新时间:2016年07月19日 17:15:48   投稿:lqh  
本文主要介绍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=%d\n", a, c);
 return 0;
}

运行结果:

12+3*5=27

a=2, c=2

1) 对于表达式12+3*5,很明显先进行乘法运算,计算3*5,结果为15,再进行加法运算,计算12+15,结果为27。也就是说,乘法的优先级比加法高,要先计算,这与数学中的规则是一样的。

所谓优先级,就是当有多个运算符在同一个表达式中出现时,先执行哪个运算符。如果不想按照默认的规则执行,可以加( ),例如(12+3)*5的结果为 75,(2+5)*(10-4)的结果为 42。大部分情况下,它们的规则和数学中是相同的。

2) 对于语句赋值语句a=b=c;,先执行b=c,再执行a=b,而不是反过来,这说明赋值操作符=具有右结合性。

所谓结合性,就是当一个运算符多次出现时,先执行哪个运算符。先执行右边的叫右结合性,先执行左边的叫左结合性。

表达式(Expression)和语句(Statement)的概念在C语言中并没有明确的定义:

表达式可以看做一个计算的公式,往往由数据、变量、运算符等组成,例如3*4+5、a=c=d等,它的结果必定是一个值;

语句的范围更加广泛,不一定是计算,不一定有值,可以是某个操作、某个函数、选择结构、循环等。

值得注意的是:以分号;结束的往往称为语句,而不是表达式,例如3*4+5;、a=c=d;等。

3) 像 +、-、*、/ 这样的运算符,它的两边都有数据,例如 3+4、a*3 等,有两个操作数,我们称这样的运算符为双目运算符。后面还会讲解单目运算符和三目运算符。

以上就是对 C语言运算符的优先级和结合性的知识整理,希望对学习C语言的同学有所帮助。

相关文章

  • C语言实现三子棋游戏

    C语言实现三子棋游戏

    这篇文章主要为大家详细介绍了C语言实现三子棋游戏的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • c++ rtti判断基类指针指向的真实对象类型

    c++ rtti判断基类指针指向的真实对象类型

    这篇文章主要为大家介绍了c++ 判断基类指针指向的真实对象类型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C语言中双链表的基本操作

    C语言中双链表的基本操作

    这篇文章主要介绍了C语言中双链表的基本操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C语言实现模拟USB对8bit数据的NRZI编码输出

    C语言实现模拟USB对8bit数据的NRZI编码输出

    今天小编就为大家分享一篇关于C语言实现模拟USB对8bit数据的NRZI编码输出,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++知识点之inline函数、回调函数和普通函数

    C++知识点之inline函数、回调函数和普通函数

    这篇文章主要给大家介绍了关于C++知识点之inline函数、回调函数和普通函数的相关使用方法,以及回调函数和普通函数的区别小结,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • 哈夫曼算法构造代码

    哈夫曼算法构造代码

    这篇文章主要介绍了哈夫曼算法构造代码,有需要的朋友可以参考一下
    2013-12-12
  • C++实现随机生成迷宫地牢

    C++实现随机生成迷宫地牢

    这篇文章主要介绍了C++实现随机生成迷宫地牢的相关资料及代码分享,推荐给大家,有需要的小伙伴可以参考下。
    2015-03-03
  • C语言链表实现图书管理系统

    C语言链表实现图书管理系统

    这篇文章主要为大家详细介绍了C语言链表实现图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C语言之字符串模糊查询方法的实现

    C语言之字符串模糊查询方法的实现

    本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下
    2015-07-07
  • MFC扩展DLL中导出类和对话框的实现方法

    MFC扩展DLL中导出类和对话框的实现方法

    这篇文章主要介绍了MFC扩展DLL中导出类和对话框的实现方法,详细讲述了实现扩展DLL中导出类和对话框的具体步骤与方法,具有不错的实用价值,需要的朋友可以参考下
    2014-10-10

最新评论