在C++中,算术运算符的定义是什么呢?算术运算符是专为执行数学计算的符号。常用的算术运算符有哪些呢?请重点解释b = ++a和d = c++运算顺序有什么区别呢?

问题描述:

根据下面代码和运行结果回答下面的问题。

代码

// Created by 黑马程序员.
#include "iostream"
using namespace std;


int main()
{
    // 单目(只有1个操作数)操作符:+、-
    int num1 = +10;     // + 表示正数
    int num2 = -10;     // - 表示负数
    cout << num1 << "," << num2 << endl;

    // 双目(有2个操作数)操作符:+、-、*、/、%
    int num3 = 5 + 5;   // + 相加
    int num4 = 5 - 3;   // - 相减
    int num5 = 5 * 5;   // * 相乘
    int num6 = 10 / 3;  // / 相除,如果两个操作数都是整数,是整除结果
    int num7 = 10 % 3;  // % 取余
    cout << "5 + 5 = " << num3 << endl;
    cout << "5 - 3 = " << num4 << endl;
    cout << "5 * 5 = " << num5 << endl;
    cout << "10 / 3 = " << num6 << endl;
    cout << "10 % 3 = " << num7 << endl;

    // 单目操作符:++(+1)、--(-1)
    int a = 2;
    int b = ++a;    // 前置递增(+1),在赋值语句(=)之前,先执行加1的操作
    cout << "a = " << a << ", b = " << b << endl;

    int c = 2;
    int d = c++;    // 后置递增,在赋值语句之“后”,再执行加1的操作
    cout << "c = " << c << ", d = " << d << endl;

    int e = 2;
    int f = --e;
    cout << "e = " << e << ", f = " << f << endl;

    int g = 2;
    int h = g--;
    cout << "g = " << g << ", h = " << h << endl;



    return 0;
}

结果:

 

D:\CLion_code\cmake-build-debug\CLion_code.exe
10,-10
5 + 5 = 10
5 - 3 = 2
5 * 5 = 25
10 / 3 = 3
10 % 3 = 1
a = 3, b = 3
c = 3, d = 2
e = 1, f = 1
g = 1, h = 2

Process finished with exit code 0

问题: 

在C++中,算术运算符的定义是什么呢?算术运算符是专为执行数学计算的符号。常用的算术运算符有哪些呢?请重点解释b = ++a和d = c++运算顺序有什么区别呢?同时,f = --e和h = g--运算顺序有什么区别呢?

问题解答:

问题分析

算术运算符是专门用于执行数学计算的符号。在 C++ 中,常用的算术运算符包括:

  • +:可以表示正数或进行加法运算。
  • -:可以表示负数或进行减法运算。
  • *:表示乘法运算。
  • /:表示除法运算,如果两个操作数都是整数,则进行整除运算。
  • %:表示取余运算,即计算两个整数相除后的余数。

重点解释运算顺序

1. 前置递增运算 (++a) 与后置递增运算 (c++) 的区别

  • b = ++a:前置递增,意味着在赋值运算之前,先将变量 a 的值增加 1,然后将增加后的值赋给 b。因此,如果 a 原本是 2,那么 ++a 之后,a 变为 3,同时 b 也被赋值为 3。

  • d = c++:后置递增,意味着先进行赋值操作,再将变量 c 的值增加 1。因此,如果 c 原本是 2,那么在 d = c++ 中,d 会被赋值为 2,而 c 在此之后变为 3。

2. 前置递减运算 (--e) 与后置递减运算 (g--) 的区别

  • f = --e:前置递减,意味着在赋值运算之前,先将变量 e 的值减 1,然后将减少后的值赋给 f。如果 e 原本是 2,那么 --e 之后,e 变为 1,同时 f 也被赋值为 1。

  • h = g--:后置递减,意味着先进行赋值操作,再将变量 g 的值减 1。因此,如果 g 原本是 2,那么在 h = g-- 中,h 会被赋值为 2,而 g 在此之后变为 1。

代码示例中的运算顺序解释

int a = 2;
int b = ++a;    // a先增加1,a = 3,然后b = 3

输出结果:a = 3, b = 3

int c = 2;
int d = c++;    // 先将c的值赋给d,d = 2,然后c增加1,c = 3

输出结果:c = 3, d = 2

int e = 2;
int f = --e;    // e先减1,e = 1,然后f = 1

输出结果:e = 1, f = 1

int g = 2;
int h = g--;    // 先将g的值赋给h,h = 2,然后g减1,g = 1

输出结果:g = 1, h = 2

结论

  • 前置运算符:先进行自增/自减操作,然后再进行赋值。
  • 后置运算符:先进行赋值,然后再进行自增/自减操作。

这就是 ++ac++ 以及 --eg-- 的主要区别。

花絮:

根据下面代码和运行结果回答下面的问题。

代码

// Created by 黑马程序员.
#include "iostream"
using namespace std;


int main()
{
    // 单目(只有1个操作数)操作符:+、-
    int num1 = +10;     // + 表示正数
    int num2 = -10;     // - 表示负数
    cout << num1 << "," << num2 << endl;

    // 双目(有2个操作数)操作符:+、-、*、/、%
    int num3 = 5 + 5;   // + 相加
    int num4 = 5 - 3;   // - 相减
    int num5 = 5 * 5;   // * 相乘
    int num6 = 10 / 3;  // / 相除,如果两个操作数都是整数,是整除结果
    int num7 = 10 % 3;  // % 取余
    cout << "5 + 5 = " << num3 << endl;
    cout << "5 - 3 = " << num4 << endl;
    cout << "5 * 5 = " << num5 << endl;
    cout << "10 / 3 = " << num6 << endl;
    cout << "10 % 3 = " << num7 << endl;

    // 单目操作符:++(+1)、--(-1)
    int a = 2;
    int b = ++a;    // 前置递增(+1),在赋值语句(=)之前,先执行加1的操作
    cout << "a = " << a << ", b = " << b << endl;

    int c = 2;
    int d = c++;    // 后置递增,在赋值语句之“后”,再执行加1的操作
    cout << "c = " << c << ", d = " << d << endl;

    int e = 2;
    int f = --e;
    cout << "e = " << e << ", f = " << f << endl;

    int g = 2;
    int h = g--;
    cout << "g = " << g << ", h = " << h << endl;



    return 0;
}

结果

D:\CLion_code\cmake-build-debug\CLion_code.exe
10,-10
5 + 5 = 10
5 - 3 = 2
5 * 5 = 25
10 / 3 = 3
10 % 3 = 1
a = 3, b = 3
c = 3, d = 2
e = 1, f = 1
g = 1, h = 2

Process finished with exit code 0

问题:

在C++中,算术运算符的定义是什么呢?算术运算符是专为执行数学计算的符号。常用的算术运算符有哪些呢?请重点解释b = ++a和d = c++运算顺序有什么区别呢?同时,f = --e和h = g--运算顺序有什么区别呢?

+表示正数,也可以表示相加

-表示负数,也可以表示相减

*表示相乘,/表示相除,%表示取余

++在前表示前置自增1,++在后表示后置自增1

--在前表示前置自减1,--在后表示后置自减1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神笔馬良

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

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

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

打赏作者

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

抵扣说明:

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

余额充值