运算符的优先级、结合性、操作数的求值顺序 您所在的位置:网站首页 在c语言中单目运算符需要几个操作数 运算符的优先级、结合性、操作数的求值顺序

运算符的优先级、结合性、操作数的求值顺序

2024-07-09 08:32| 来源: 网络整理| 查看: 265

看了几个微博,组织到一起记录下

一.运算符的优先级 在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated. 意识是说优先级规定操作数的结合方式,但并未说明操作数的计算顺序。举个例子: 6+3*4+2 如果直接按照从左到右的计算次序得到的结果是:38,但是在C/C++中它的值为20。 因为乘法运算符的优先级高于加法的优先级,因此3是和4分组到一起的,并不是6与3进行分组。这就是运算符优先级的含义。

一共有十五个优先级:

1 () [] . ->

2 ! ~ -(负号) ++ – &(取变量地址)* (type)(强制类型) sizeof

3 * / %

4 + -

5 >> >= < >= ,关系:> < >= 2+3*4+5 以及2->3*4->2+3*4->2+3*4+5和5->3*4->2+3*4->2+3*4+5这些次序都是有可能的。虽然它们的计算次序不同,但是对最终结果是没有影响的。

printf计算参数的时候是从右到左压栈的

*(ptr++) += 123; // ++在后面表示计算后加加 //等效于 *ptr +=123; ptr++; //等效于 *ptr = *ptr + 123; ptr++; *(++ptr) += 123; // ++在后面表示计算前加加 //等效于 ptr++; *ptr +=123; //等效于 ptr++; *ptr = *ptr + 123;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有