IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言运算符优先级问题 -> 正文阅读

[C++知识库]c语言运算符优先级问题

文章概述:主要阐明复杂式子中c语言运算符的计算顺序,它不仅仅与优先级有关系,还与计算机执行指令的机制有关。

1.运算符优先级列表

1)如果是嘉庚的学生,请参考书本《c语言程序设计教程》郭一晶主编p43
2)另外还可以参考C语言运算符优先级列表(超详细)

2.程序中不同优先级的处理方式

按照上文阐述,优先级高的式子具有优先计算的特点,那么,

#include<stdio.h>
    int main(){
    int a=b,(int b=3);
	printf("a:%d",a);
return 0;
}

观察

int a=b,(int b=3);

按照优先级划分,‘,’(逗号表达式)的优先级低于“()”(括号),因此 int b=3 应该先执行,a=b可以执行。
这显然很荒谬,这样执行后报错:
在这里插入图片描述
错误显示b是第一次使用,显然程序的读取顺序仍然是从左到右,并不是单纯看运算符的优先级。

所以,优先级到底是怎么发生作用的呢?

举一个例子:

 a=b+c*d;

按照数学的说法,“*”的优先级高于“+”,因此先执行c*d,但在c语言程序里,程序仍然是从左到右读取的,因此实际优先级发挥的作用可以看作,如图:

在这里插入图片描述
分析:优先级高在程序里并不会优先执行,而是将运算符两边的变量结合的更紧密。程序依然是从左往右读取的,只是读取过程中,变量更紧密的一边会自成整体。

所以上图的程序执行方式为(依然是丛左向右读取程序):
1.读取a=
2.由于=结合方向为自右向左,因此需要先读取右边的b
3.读到b时,发现=无法将b结合过来,因为b右边的+优先级高于=,所以无法执行a=b,必须将b+右边看成整体,因此下一步读取这个整体。
4.读取整体中的b+c时,发现+的优先级小于c右边的*号,因此+不得不把c*d看成整体后再参与运算。因此要先解决掉c*d
5.至此程序读取完毕。内存把c*d当做整体和b相加,再把加起来的值赋值给a

又如:

int a=3,b=4,d=9;
b=a>b||a++;

第二行根据优先级应当看做:
在这里插入图片描述
从图中可以看出a++由于优先级最高,因此最紧密,对其他运算来说,它是个整体,除非有其他运算符比它优先级高,将它分开。但还不是优先级高就先执行,依然从左到右边。
可以将其改成这样:

b=( (a > b) || (a++))

但是程序依然是从左往右读取。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:06:35  更:2022-11-05 00:07:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:22:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码