8.【C/C++优先级详解】

(一)、什么是优先级?

优先级是指计算机分时操作系统在处理多个作业程序的时候,决定各个作业程序接收系统调用的先后。优先级越高、先调用。

(二)、优先级表格都有什么?

	![在这里插入图片描述](https://img-blog.csdnimg.cn/349a3421ff8243dea1bd9e7b27eb6a72.jpeg#pic_center)

(三)、经典优先级举列.

本次我们以前置++和后置++进行详细讲说:

1.1 前置++和后置++是什么?

前置++:是先自增,然后再进行表达式.
后置++:是先进性表达式,再进行自增.

1.2前置++后置++在判断语句中.

后置++在判断语句中:在if语句中a++的值仍然为5,因为先进行表达式里面的判断语句得出来不满足,所以进入else语句,此时a=6,又+1所以结果为7.

在这里插入代码片#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	if (a++ > 5)
		cout << a << endl;
	else
	{
		cout << a+1;
	}
}

在这里插入图片描述
前置++在判断语句中: 先进性自增,然后再判断的出来if为真输出a

在这里插入代码片#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	if (++a > 5)
		cout << a << endl;
	else
	{
		cout << a+1;
	}
}

在这里插入图片描述

1.3前置++后置++在数据类型中.

后置++在数据类型中:直接运行.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	a++;
	cout << a << endl;
}

在这里插入图片描述
前置++在数据类型中:依然直接输出.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	++a;
	cout << a << endl;
}

在这里插入图片描述

1.4前置++后置++在输出语句中.

后置++在输出语句中:因为a默认优先级为+,+的优先级小于++,所以我们先运行后面的后置++,又因为后置++先进性表达式,所以第二个a仍然为5,其余的为6.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	cout << a << " " << a++ << endl;
	cout << a << endl;
}

在这里插入图片描述
输出语句中的前置++: 因为先进性前置++,所以结果都为6

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a = 5;
	cout << a << " " << ++a << endl;
	cout << a << endl;
}

在这里插入图片描述

1.5前置++和前置++同在赋值语句中

()的优先级高于+、先执行两个小括号内的++,第一次++x的时候为5,放在储存区,第二次为6,所以两个结果都为6;

#include <iostream>
using namespace std;
int main()
{
	int a = 4,b;
	b =  (++a)+(++a);
	cout << b << endl;
}

在这里插入图片描述

1.6后置++和后置++同在赋值语句中

先存值、后输出

#include <iostream>
using namespace std;
int main()
{
	int a = 4,b;
	b =  (a++)+(a++);
	cout << b << endl;
}

在这里插入图片描述

1.7后置++和后置++同在赋值语句中

后置++优先级高于前置++优先级,所以后置++先运行为4,前置++在5的基础上再+1为6.

#include <iostream>
using namespace std;
int main()
{
	int a = 4,b;
	b =  (a++)+(++a);
	cout << b << endl;
}

在这里插入图片描述

前置++和后置++,单个赋值

后置++,先运算再++

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int a=5,b;
	b = a++;
	cout << b << endl;

}

在这里插入图片描述

(四)总结.

一定要看好优先级再进行数据判断!

  • 67
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 97
    评论
在使用priority_queue时,可以自定义其中数据的优先级规则。这可以通过两种方法来实现。首先,可以定义一个自定义比较函数,该函数接受两个参数并返回一个bool值,指示第一个参数是否应该排在第二个参数之前。其次,可以定义一个自定义的结构体或类,并重载其操作符 (),使其成为一个函数对象,在priority_queue中使用该函数对象来确定元素的优先级规则。无论哪种方法,都要确保优先级较高的元素排在队列的前面。 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [priority_queue(优先级队列的模拟使用和实现)](https://blog.csdn.net/m0_61560468/article/details/126665712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [c++优先队列(priority_queue)用法详解](https://download.csdn.net/download/weixin_38512659/13760144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [[ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解](https://blog.csdn.net/qq_58325487/article/details/126627410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 97
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值