一文详解C++中运算符的使用

Felix
Felix
发布时间:2026-10-15 | 3人浏览过
原创

C++提供了丰富的运算符来满足复杂的计算需求,包括算术运算、关系比较、逻辑判断、位操作以及综合的赋值和杂项运算符。理解这些符号的定义、优先级和使用场景是编写高效且正确C++代码的基础。

一、算术运算符基础

算术运算符用于执行基本的数学计算,支持整数和浮点数类型。在C++中,除法运算符的行为取决于操作数的类型:若均为整数则结果取整,包含小数部分将丢失。

第1步:加减乘除与取模操作

使用 +、-、* 分别完成加、减、乘运算;/ 执行除法;% 返回整除后的余数。注意取模运算仅适用于整数。

#include <iostream>
using namespace std;

int main()
{
  int a = 66;
  int b = 33;
  int c;

  // 加法
  c = a + b;
  cout << "a + b 的值是 " << c << endl ;
  
  // 减法
  c = a - b;
  cout << "a - b 的值是 " << c << endl ;
  
  // 乘法
  c = a * b;
  cout << "a * b 的值是 " << c << endl ;
  
  // 整除(66/33=2)
  c = a / b;
  cout << "a / b 的值是 " << c << endl ;
  
  // 取模(66%33=0)
  c = a % b;
  cout << "a % b 的值是 " << c << endl ;

  return 0;
}

输出结果:

  • a + b 的值是 99
  • a - b 的值是 33
  • a * b 的值是 2178
  • a / b 的值是 2
  • a % b 的值是 0

第2步:理解自增与自减的前置区别

++ 和 -- 分为前置(++a)和后置(a++)。两者的核心区别在于返回值的不同:
- 后置自增 (a++):先使用变量当前的值,然后再自增。
- 前置自增 (++a):先进行自增,然后再使用新的值。

#include <iostream>
using namespace std;

int main()
{
  // 测试后置自增:输出 z 的原值 1
  int z = 1;
  cout << z++ << endl;
  
  // 测试前置自增:先 h+1,然后输出 2
  int h = 1;
  cout << ++h;

  return 0;
}

输出结果:

  • 1
  • 2

二、关系与逻辑运算符的应用

在进行条件判断时,需要准确组合关系运算符与逻辑运算符。关系运算符决定比较的真假,而逻辑运算符组合多个条件表达式。

第3步:执行数值大小与相等性比较

常用关系运算符包括 ==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于或等于)和 <=(小于或等于)。以下代码演示了如何根据比较结果输出对应的字符串信息。

#include <iostream>
using namespace std;

int main()
{
  int a = 21;
  int b = 10;
  int c;

  if( a == b )
  {
    cout << "a 等于 b" << endl ;
  }
  else
  {
    cout << "a 不等于 b" << endl ;
  }
  
  if ( a < b )
  {
    cout << "a 小于 b" << endl ;
  }
  else
  {
    cout << "a 不小于 b" << endl ;
  }
  
  if ( a > b )
  {
    cout << "a大于 b" << endl ;
  }
  else
  {
    cout << "a 不大于 b" << endl ;
  }

  return 0;
}

输出结果:

  • a 不等于 b
  • a 不小于 b
  • a大于 b

第4步:综合运用逻辑与、或、非

逻辑运算符 &&(与)、||(或)和 !(非)允许构建复杂的布尔表达式。逻辑“与”要求两侧同时为真才返回真;逻辑“或”只要有一侧为真即返回真;逻辑“非”会翻转布尔值的状态。

#include <iostream>
using namespace std;

int main()
{
  int a = 10;
  int b = 20;
  int c = 30;
  int d = 100;

  // 逻辑或:因为 c < d 成立,整体为真
  if( a == b || c < d)
    cout << "6666" << endl;
  else
    cout << "66-----66" << endl;

  // 逻辑与:由于 d < c (100<30) 为假,整体为假
  if( a < b && b < c && d < c)
    cout << "7777" << endl;
  else
    cout << "77-----77" << endl;

  // 逻辑非:括号内 (a==b || c==d) 为假,取反后为真
  if( !(a == b || c == d))
    cout << "8888" << endl;
  else
    cout << "88-----88" << endl;
    
  return 0;
}

输出结果:

  • 6666
  • 77-----77
  • 8888

三、按位运算符详解

位运算符直接对二进制位进行操作,主要用于底层的优化或权限控制。常用的包括按位与 (&)、按位或 (|) 和按位异或 (^)。

第5步:验证基础的位逻辑组合

按位与 &:两个位都为1时结果为1;
按位或 |:至少有一个为1时结果为1;
按位异或 ^:两个位不同时结果为1,相同时为0。

p q p&q (与) p|q (或) p^q (异或)
00000
01011
10011
11110

四、复合赋值与杂项运算符

C++允许通过简化语法提高赋值的可读性和执行效率。此外,还有几个关键的辅助运算符在程序设计中经常使用。

第6步:使用复合赋值运算符

这类运算符将算术、移位或位操作与赋值相结合。例如 += 表示先相加再赋值,等价于 x = x + y。

  • =:基础赋值
  • +=, -= , *=, /=:算术复合赋值
  • %=:求模复合赋值
  • <<=, >>=:移位复合赋值
  • &=, ^=, |=:位运算复合赋值

第7步:处理三元运算符、指针及其他杂项

除了上述基本类群,C++还支持以下重要特性:
1. 条件运算符 (?):形式为 Condition ? X : Y。若 Condition 为真,返回 X,否则返回 Y。
2. 成员访问:使用 . (点) 和 -> (箭头) 访问结构体或类的成员。
3. 强制类型转换 (Cast):如 int(2.2000) 可将浮点型转为整型。
4. sizeof:返回数据类型或变量的字节大小。
5. 指针相关 (& 和 *):& 获取变量的内存地址,* 作为解引用运算符指向变量的值。

以上就是C++中各类运算符的详细内容,更多关于C++编程技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表