您现在的位置是:首页 > Javascript
当前栏目
8.【C/C++优先级详解】
2023-04-18 16:07:08 时间
文章目录
(一)、什么是优先级?
优先级是指计算机分时操作系统在处理多个作业程序的时候,决定各个作业程序接收系统调用的先后。优先级越高、先调用。
(二)、优先级表格都有什么?
![在这里插入图片描述](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;
}
(四)总结.
一定要看好优先级再进行数据判断!
相关文章
- 前端面试 【JavaScript】— typeof 是否能正确判断类型?
- 前端面试 【JavaScript】— instanceof 能否判断基本数据类型?
- 前端面试 【JavaScript】— 能不能手动实现一下 instanceof 的功能?
- 前端面试 【JavaScript】— Object.is和=== 有什么区别?
- 前端面试 【JavaScript】— JS中类型转换有哪几种?
- 前端面试 【JavaScript】— == 和 ===有什么区别?
- 前端面试 【JavaScript】— 对象转原始类型是根据什么流程运行的?
- JavaScript 的 parseInt() 函数
- javascript实现两个数字进行组合
- JS监听键盘按键
- 大前端开发中的路由管理之五:Flutter篇
- Javascript的DOM操作
- 在Vue项目中使用WebSocket技术
- 新手向:前端程序员必学基本技能——调试JS代码
- React 毁了 Web 开发!
- 「JS 逆向百例」cnki 学术翻译 AES 加密分析
- 商标注册域名后缀用什么?商标和域名有哪些区别?
- 网站建设流程是怎样的?需要看重哪些细节?
- 网站域名商标注册流程是什么?网站域名商标有什么用?
- 如何建设一个实用性强的网站 网站上线后如何运营