广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >一文总结C++运算符的使用方法
  • 848
分享到

一文总结C++运算符的使用方法

C++运算符总结C++运算符 2023-05-20 05:05:54 848人浏览 安东尼
摘要

目录1. 算术运算符2. 关系运算符3. 逻辑运算符4. 按位运算符5. 取地址运算符6. 取内容运算符7. 成员选择符8. 作用域运算符1. 算术运算符 算术运

1. 算术运算符

算术运算符用于执行基本数学运算,例如加减乘除和取模等操作。下表列出了c++中支持的算术运算符:

运算符描述示例
+加法a+ ++b
减法a-b
乘法a∗ *∗b
/除法a/ //b
取模ab

其中,a和b代表要进行计算的两个变量或值。

(1)加法运算符

加法运算符(+)用于将两个值相加。如果两个操作数都是数字,则它们将被相加。如果其中一个操作数是字符串,则它们将被连接起来。

e.g.

int a = 5;
int b = 3;
int c = a + b; // c的值为8
std::string str1 = "Hello, ";
std::string str2 = "world!";
std::string str3 = str1 + str2; // str3的值为"Hello, world!"

(2)减法运算符

减法运算符(-)用于将第一个操作数减去第二个操作数。

e.g.

int a = 5;
int b = 3;
int c = a - b; // c的值为2

(3)乘法运算符

乘法运算符(*)用于将两个数相乘。

e.g.

int a = 5;
int b = 3;
int c = a * b; // c的值为15

注意,C++中整数除法返回整数结果,即舍去小数部分。

(5)取模运算符

取模运算符(%)返回除法的余数。

e.g.

int a = 7;
int b = 3;
int c = a % b; // c的值为1

2. 关系运算符

关系运算符用于比较两个值并返回布尔值(true或false)。下表列出了C++中支持的关系运算符:

运算符描述示例
==相等a == b
!=不相等a != b
>大于a > b
>=大于等于a >= b
<=小于等于a <= b

其中,a和b代表要进行比较的两个变量或值。

(1)相等和不相等运算符

相等运算符(==)用于比较两个值是否相等。如果它们相等,则返回true,否则返回false。

e.g.

int a = 5;
int b = 3;
bool c = (a == b); // c的值为false

不相等运算符(!=)用于比较两个值是否不相等。如果它们不相等,则返回true,否则返回false。

e.g.

int a = 5;
int b = 3;
bool c = (a != b); // c的值为true

(2)大于和小于运算符

大于运算符(>)用于比较第一个操作数是否大于第二个操作数。如果是,则返回true,否则返回false。

e.g.

int a = 5;
int b = 3;
bool c = (a > b); // c的值为true

小于运算符(<)用于比较第一个操作数是否小于第二个操作数。如果是,则返回true,否则返回false。

e.g

int a = 5;
int b = 3;
bool c = (a < b); // c的值为false

(3)大于等于和小于等于运算符

大于等于运算符(>=)用于比较第一个操作数是否大于或等于第二个操作数。如果是,则返回true,否则返回false。

e.g.

int a = 5;
int b = 3;
bool c = (a >= b); // c的值为true

小于等于运算符(<=)用于比较第一个操作数是否小于或等于第二个操作数。如果是,则返回true,否则返回false。

e.g.

int a = 5;
int b = 3;
bool c = (a <= b); // c的值为false

3. 逻辑运算符

逻辑运算符用于执行布尔逻辑操作。下表列出了C++中支持的逻辑运算符:

运算符描述示例
&&逻辑与a && b
||逻辑或a
!逻辑非!a

 

其中,a和b代表要进行逻辑运算的两个布尔值。

(1)逻辑与运算符

逻辑与运算符(&&)用于检查两个条件是否都为真。只有当两个条件都为真时,才会返回true,否则返回false。

e.g.

bool a = true;
bool b = false;
bool c = (a && b); // c的值为false

(3)逻辑非运算符

逻辑非运算符(!)用于翻转一个布尔值。如果输入为true,则返回false,否则返回true。

e.g.

bool a = true;
bool b = !a; // b的值为false

4. 按位运算符

按位运算符用于操作二进制数据。下表列出了C++中支持的按位运算符:

运算符描述示例
&按位与a & b
|按位或a
^按位异或a ^ b
~取反~a
<<左移a << b
>>右移a >> b

其中,a和b代表要进行按位运算的两个整数。

(1)按位与运算符

按位与运算符(&)将两个二进制数的每一位进行比较,并且如果两位都为1,则该位输出1,否则输出0。

e.g.

int a = 5; // 二进制表示为101
int b = 3; // 二进制表示为011
int c = a & b; // c的值为1,二进制表示为001

(2)按位或运算符

按位或运算符(|)将两个二进制数的每一位进行比较,并且如果任意一位为1,则该位输出1,否则输出0。

e.g.

int a = 5; // 二进制表示为101
int b = 3; // 二进制表示为011
int c = a \| b; // c的值为7,二进制表示为111

(3)按位异或运算符

按位异或运算符将两个整数的二进制表示进行“异或”操作,并返回一个新的整数。当两个比特位相同时,该比特位结果为 0,否则为 1。

e.g.

int a = 5; // 二进制 101
int b = 3; // 二进制 011
int c = a ^ b; // 二进制 110 (即十进制 6)

(4)按位取反运算符

按位取反运算符对整数的二进制表示进行取反操作,并返回一个新的整数。当一个比特位为 0 时,结果为 1,否则为 0。

e.g

int a = 5; // 二进制 101
int b = ~a; // 二进制 010 (即十进制 2)

(5)左移位运算符

左移位运算符将一个整数的二进制表示向左移动指定的位数,并返回一个新的整数。左移 n 位相当于将这个数乘以 2 的 n 次方。

e.g.

int a = 5; // 二进制 101
int b = a << 1; // 二进制 1010 (即十进制 10)

(6)右移位运算符

右移位运算符将一个整数的二进制表示向右移动指定的位数,并返回一个新的整数。右移 n 位相当于将这个数除以 2 的 n 次方。

e.g.

int a = 5; // 二进制 101
int b = a >> 1; // 二进制 10 (即十进制 2)

5. 取地址运算符

C++中,取地址运算符用于获取变量或对象的内存地址,表示为&,并且可以应用于任何变量、指针或对象。使用取地址运算符可以在程序中有效地管理内存和数据结构

取地址运算符的一般语法如下:

&variable // 获取变量的地址

&object // 获取对象的地址

&type // 获取类型的地址

其中,“variable”表示要获取地址的变量,“object”表示要获取地址的对象,“type”表示要获取地址的类型。

e.g.

int a = 10;
int* ptr = &a; // 使用取地址运算符获取变量a的地址,并将其存储在指针ptr中

cout << "The value of a is: " << a << endl;
cout << "The address of a is: " << &a << endl;
cout << "The value of ptr is: " << ptr << endl;
cout << "The value pointed to by ptr is: " << *ptr << endl;

上述代码首先定义一个整数变量“a”,然后使用取地址运算符&获取它的地址,并将其存储在指针“ptr”中。接下来打印出变量“a”的值和地址、指针“ptr”的值以及指针所指向的值。

输出结果应该与以下内容类似:

The value of a is: 10
The address of a is: 0x7fff5fbff7dc
The value of ptr is: 0x7fff5fbff7dc
The value pointed to by ptr is: 10

从输出结果可以看出,变量“a”的地址与指针“ptr”的值相同,并且指针所指向的值与变量“a”的值相同。

6. 取内容运算符

在C++中,取内容运算符用于获取指针所指向的值,表示为*,并且可以应用于任何指针变量。

取内容运算符的一般语法如下:

*pointer // 获取指针所指向的值

其中,“pointer”表示要获取值的指针变量。

e.g.

int a = 10;
int* ptr = &a; // 使用取地址运算符获取变量a的地址,并将其存储在指针ptr中

cout << "The value of a is: " << a << endl;
cout << "The value pointed to by ptr is: " << *ptr << endl;

上述代码首先定义一个整数变量“a”,然后使用取地址运算符&获取它的地址,并将其存储在指针“ptr”中。接下来打印出变量“a”的值和指针“ptr”所指向的值。

输出:

The value of a is: 10
The value pointed to by ptr is: 10

从输出结果可以看出,指针“ptr”所指向的值与变量“a”的值相同。

7. 成员选择符

在C++中,成员选择符用于访问类的成员变量和成员函数。它表示为.(点号),并且可以应用于任何已定义的对象。使用成员选择符可以操作和修改对象的成员,从而实现面向对象编程

成员选择符的一般语法如下:

object.member // 访问成员变量或成员函数

其中,“object”表示要访问成员的对象,“member”表示要访问的成员变量或成员函数。

e.g.

class MyClass {
public:
  int myVar;
  void myFunc() {
    cout << "Hello, world!" << endl;
  }
};

MyClass obj; // 创建MyClass对象

obj.myVar = 42; // 使用成员选择符访问myVar成员变量
cout << "The value of myVar is: " << obj.myVar << endl;

obj.myFunc(); // 使用成员选择符调用myFunc成员函数

上述代码首先定义了一个名为“MyClass”的类,该类包含一个整数类型的成员变量“myVar”和一个无参数无返回值的成员函数“myFunc”。接下来创建了一个名为“obj”的MyClass对象,并使用成员选择符访问其成员变量和成员函数。

输出:

The value of myVar is: 42
Hello, world!

从输出结果可以看出,我们成功地使用成员选择符访问了MyClass对象的成员变量和成员函数。

成员选择符 -> 用于访问结构体和类指针所指向的成员。它通常与动态内存分配函数 new 结合使用,来创建对象并进行操作。

e.g.

struct Person {
    std::string name;
    int age;
};

int main() {
    // 创建Person结构体指针p
    Person *p = new Person();

    // 通过成员选择符->访问p所指向的name成员变量
    p->name = "John";

    // 通过成员选择符->访问p所指向的age成员变量
    p->age = 30;

    delete p;
    return 0;
}

上述代码在动态内存中分配了一个新的Person结构体,并将其作为指针p进行访问。然后使用成员选择符 -> 访问指针p所指向的name和age成员。

需要注意的是,当使用普通对象(即不是指针)时,必须使用句点 . 而不是 -> 来访问成员。

8. 作用域运算符

C++的作用域运算符 :: 用于访问类、命名空间、结构体或枚举类型中的成员,以及访问全局变量和函数。

C++可以使用作用域运算符来区分同名的成员或变量,并指定需要访问的特定成员或变量。例如,当一个类的成员与它的父类具有相同的名称时,我们可以使用作用域运算符来访问这个类所定义的成员,而不是其父类中的成员。此外,在多个源文件中实现相同的函数时,可以使用作用域运算符来分隔全局命名空间和局部命名空间。

e.g. 访问类的成员

class A {
public:
    int x;
};

class B : public A {
public:
    int x;
};

int main() {
    B b;
    b.A::x = 5; // 访问A类中的x成员
    b.x = 10;   // 访问B类中的x成员

    return 0;
}

e.g. 访问命名空间中的变量或函数:

namespace MyNamespace {
    int x = 5;

    void printX() {
        std::cout << "x = " << x << std::endl;
    }
}

int main() {
    MyNamespace::printX(); // 访问MyNamespace中的printX函数
    std::cout << "MyNamespace::x = " << MyNamespace::x << std::endl; // 访问MyNamespace中的x变量

    return 0;
}

e.g. 访问全局变量:

int x = 10;

int main() {
    int x = 5;
    std::cout << "局部变量x = " << x << std::endl;

    std::cout << "全局变量x = " << ::x << std::endl; // 访问全局命名
}

以上就是一文总结C++运算符的使用方法的详细内容,更多关于C++ 运算符的资料请关注编程网其它相关文章!

--结束END--

本文标题: 一文总结C++运算符的使用方法

本文链接: https://www.lsjlt.com/news/213840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一文总结C++运算符的使用方法
    目录1. 算术运算符2. 关系运算符3. 逻辑运算符4. 按位运算符5. 取地址运算符6. 取内容运算符7. 成员选择符8. 作用域运算符1. 算术运算符 算术运...
    99+
    2023-05-20
    C++运算符总结 C++ 运算符
  • 一文总结JS中逻辑运算符的特点
    目录Js中的逻辑运算符描述JS逻辑运算符的特点1. 取反 !2. 逻辑与 &&3. 逻辑或 ||总结 Js中的逻辑运算符 JavaScript中有三个逻辑运...
    99+
    2022-11-13
  • JS中一些高效的魔法运算符总结
    JavaScript 现在每年都会发一个新版本,里面也会新增一些操作更加便利、高效的运算符。今天我们就来盘点下几个高效的魔法运算符。 1. 可选链运算符 之前当我们想要使用某个结构...
    99+
    2022-11-12
  • 一文详解C++中运算符的使用
    目录一、算术运算符二、关系运算符三、逻辑运算符四、位运算符五、赋值运算符六、杂项运算符一、算术运算符 运算符描述+把两个操作数相加-从第一个操作数中减去第二个操作数*把两个操作数相乘...
    99+
    2022-11-13
  • C语言中位运算符"|"的5种高级用法总结
    目录前言一、将两个字节合并成一个16位整数二、将一个字节的低4位和高4位交换三、将一个字节中的某些位置1四、将一个字节中的某些位置0五、将低位连续的0变为1小结前言 在上一篇文章中,...
    99+
    2023-05-15
    C语言位运算符I用法 C语言位运算符I C语言位运算符
  • c语言逗号运算符的使用方法
    本文将为大家详细介绍“c语言逗号运算符的使用方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“c语言逗号运算符的使用方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
    99+
    2023-06-06
  • C++运算符重载方法怎么使用
    本篇内容介绍了“C++运算符重载方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概念C++为了增强代码的可读性引入了运算符重载,运...
    99+
    2023-06-30
  • C#中?、?.、??、??=运算符的用法
    目录1. 可空类型修饰符 ?2. 空合并运算符 3. 非null时继续执行后续代码,运算符 .4. =1. 可空类型修饰符 ? // 引用类型能用空引用来表示一个不存在的值,但是值类...
    99+
    2023-05-15
    C# ? ?. ?? ??=
  • Expression操作运算符、表达式和操作方法总结
    一、Expression中的操作运算符 成员名称说明Add加法运算,如 a + b, ,不进行溢出检查,针对数值操作数。AddAssign加法复合赋值运算,如 (a += b), ,...
    99+
    2022-11-12
  • 一文搞懂C++中的运算符重载
    目录引入一.运算符重载是什么二.运算符重载的格式三.部分运算符重载的实现3.1 简单‘ + ’ ‘ - ’ ‘ * &rs...
    99+
    2022-11-13
  • Python运算符*的使用方法
    本篇内容主要讲解“Python运算符*的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python运算符*的使用方法”吧!1.有用的键盘快捷键缩进代码按Tab。取消缩进代码按Shift ...
    99+
    2023-06-02
  • javascript中&&运算符与||运算符的使用方法实例
    目录前言&&运算符||运算符||运算符的小demo本章目标案例实践(通过加载json渲染数据)结尾总结前言 在前端开发领域中,&&运算符和||运算符...
    99+
    2022-11-12
  • javascript中&&运算符与||运算符的使用方法
    本篇文章为大家展示了javascript中&&运算符与||运算符的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言在前端开发领域中,&&运算符和||运算符是...
    99+
    2023-06-25
  • 一文学会Java运算符的使用
    目录算术运算符关系运算符逻辑运算符赋值运算符条件运算符运算符优先级算术运算符 运算符描述+两数相加-两数相减*两数相乘/两数相除%取模,返回两数相除的余数++自加一- -自减一 pu...
    99+
    2022-11-13
  • C#中的==运算符用法讲解
    目录==运算符与基元类型==运算符与引用类型==运算符与String类型==运算符与值类型==运算符与泛型总结==运算符与基元类型 我们分别用两种方式比较两个整数,第一个使用的是Eq...
    99+
    2022-11-13
  • c++运算符重载的方法是什么
    C++中的运算符重载方法是通过定义特殊的成员函数来实现的。重载运算符的函数被称为运算符函数,它们具有特殊的命名规则和语法。一般情况下...
    99+
    2023-09-14
    c++
  • 【Python】计算程序运行时间的方法总结
    一、第一种方法 利用time包: import timedef test(): start_time = time.time() # 记录程序开始运行时间 s = 0 for i ...
    99+
    2023-09-06
    python
  • php逻辑运算符的使用方法
    小编给大家分享一下php逻辑运算符的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要...
    99+
    2023-06-14
  • Swift运算符使用方法浅析
    目录溢出运算符(Overflow Operator)运算符重载(Operator Overload)EquatableComparable自定义运算符 (Custom Operato...
    99+
    2022-11-13
  • C#运算符表达式的使用
    这篇文章主要介绍“C#运算符表达式的使用”,在日常操作中,相信很多人在C#运算符表达式的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#运算符表达式的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作