1. 算术运算符算术运算符用于执行基本数学运算例如加减乘除和取模等操作。下表列出了C中支持的算术运算符运算符描述示例加法a b−减法a-b∗乘法a∗ *∗b/除法a/ //b取模ab其中a和b代表要进行计算的两个变量或值。1加法运算符加法运算符用于将两个值相加。如果两个操作数都是数字则它们将被相加。如果其中一个操作数是字符串则它们将被连接起来。e.g.123inta 5;intb 3;intc a b;// c的值为8123std::string str1 Hello, ;std::string str2 world!;std::string str3 str1 str2;// str3的值为Hello, world!2减法运算符减法运算符-用于将第一个操作数减去第二个操作数。e.g.123inta 5;intb 3;intc a - b;// c的值为23乘法运算符乘法运算符*用于将两个数相乘。e.g.123inta 5;intb 3;intc a * b;// c的值为15注意C中整数除法返回整数结果即舍去小数部分。5取模运算符取模运算符%返回除法的余数。e.g.123inta 7;intb 3;intc a % b;// c的值为12. 关系运算符关系运算符用于比较两个值并返回布尔值true或false。下表列出了C中支持的关系运算符运算符描述示例相等a b!不相等a ! b大于a b大于等于a b小于等于a b其中a和b代表要进行比较的两个变量或值。1相等和不相等运算符相等运算符用于比较两个值是否相等。如果它们相等则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为false不相等运算符用于比较两个值是否不相等。如果它们不相等则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a ! b);// c的值为true2大于和小于运算符大于运算符用于比较第一个操作数是否大于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为true小于运算符用于比较第一个操作数是否小于第二个操作数。如果是则返回true否则返回false。e.g123inta 5;intb 3;boolc (a b);// c的值为false3大于等于和小于等于运算符大于等于运算符用于比较第一个操作数是否大于或等于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为true小于等于运算符用于比较第一个操作数是否小于或等于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为false3. 逻辑运算符逻辑运算符用于执行布尔逻辑操作。下表列出了C中支持的逻辑运算符运算符描述示例逻辑与a b||逻辑或a!逻辑非!a其中a和b代表要进行逻辑运算的两个布尔值。1逻辑与运算符逻辑与运算符用于检查两个条件是否都为真。只有当两个条件都为真时才会返回true否则返回false。e.g.123boola true;boolb false;boolc (a b);// c的值为false3逻辑非运算符逻辑非运算符!用于翻转一个布尔值。如果输入为true则返回false否则返回true。e.g.12boola true;boolb !a;// b的值为false4. 按位运算符按位运算符用于操作二进制数据。下表列出了C中支持的按位运算符运算符描述示例按位与a b|按位或a^按位异或a ^ b~取反~a左移a b右移a b其中a和b代表要进行按位运算的两个整数。1按位与运算符按位与运算符将两个二进制数的每一位进行比较并且如果两位都为1则该位输出1否则输出0。e.g.123inta 5;// 二进制表示为101intb 3;// 二进制表示为011intc a b;// c的值为1二进制表示为0012按位或运算符按位或运算符|将两个二进制数的每一位进行比较并且如果任意一位为1则该位输出1否则输出0。e.g.123inta 5;// 二进制表示为101intb 3;// 二进制表示为011intc a \| b;// c的值为7二进制表示为1113按位异或运算符按位异或运算符将两个整数的二进制表示进行“异或”操作并返回一个新的整数。当两个比特位相同时该比特位结果为 0否则为 1。e.g.123inta 5;// 二进制 101intb 3;// 二进制 011intc a ^ b;// 二进制 110 (即十进制 6)4按位取反运算符按位取反运算符对整数的二进制表示进行取反操作并返回一个新的整数。当一个比特位为 0 时结果为 1否则为 0。e.g12inta 5;// 二进制 101intb ~a;// 二进制 010 (即十进制 2)5左移位运算符左移位运算符将一个整数的二进制表示向左移动指定的位数并返回一个新的整数。左移 n 位相当于将这个数乘以 2 的 n 次方。e.g.12inta 5;// 二进制 101intb a 1;// 二进制 1010 (即十进制 10)6右移位运算符右移位运算符将一个整数的二进制表示向右移动指定的位数并返回一个新的整数。右移 n 位相当于将这个数除以 2 的 n 次方。e.g.12inta 5;// 二进制 101intb a 1;// 二进制 10 (即十进制 2)5. 取地址运算符C中取地址运算符用于获取变量或对象的内存地址表示为并且可以应用于任何变量、指针或对象。使用取地址运算符可以在程序中有效地管理内存和数据结构。取地址运算符的一般语法如下12345variable// 获取变量的地址object// 获取对象的地址type// 获取类型的地址复制讲解其中“variable”表示要获取地址的变量“object”表示要获取地址的对象“type”表示要获取地址的类型。e.g.1234567inta 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”的值以及指针所指向的值。
一文总结C++运算符的使用方法
1. 算术运算符算术运算符用于执行基本数学运算例如加减乘除和取模等操作。下表列出了C中支持的算术运算符运算符描述示例加法a b−减法a-b∗乘法a∗ *∗b/除法a/ //b取模ab其中a和b代表要进行计算的两个变量或值。1加法运算符加法运算符用于将两个值相加。如果两个操作数都是数字则它们将被相加。如果其中一个操作数是字符串则它们将被连接起来。e.g.123inta 5;intb 3;intc a b;// c的值为8123std::string str1 Hello, ;std::string str2 world!;std::string str3 str1 str2;// str3的值为Hello, world!2减法运算符减法运算符-用于将第一个操作数减去第二个操作数。e.g.123inta 5;intb 3;intc a - b;// c的值为23乘法运算符乘法运算符*用于将两个数相乘。e.g.123inta 5;intb 3;intc a * b;// c的值为15注意C中整数除法返回整数结果即舍去小数部分。5取模运算符取模运算符%返回除法的余数。e.g.123inta 7;intb 3;intc a % b;// c的值为12. 关系运算符关系运算符用于比较两个值并返回布尔值true或false。下表列出了C中支持的关系运算符运算符描述示例相等a b!不相等a ! b大于a b大于等于a b小于等于a b其中a和b代表要进行比较的两个变量或值。1相等和不相等运算符相等运算符用于比较两个值是否相等。如果它们相等则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为false不相等运算符用于比较两个值是否不相等。如果它们不相等则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a ! b);// c的值为true2大于和小于运算符大于运算符用于比较第一个操作数是否大于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为true小于运算符用于比较第一个操作数是否小于第二个操作数。如果是则返回true否则返回false。e.g123inta 5;intb 3;boolc (a b);// c的值为false3大于等于和小于等于运算符大于等于运算符用于比较第一个操作数是否大于或等于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为true小于等于运算符用于比较第一个操作数是否小于或等于第二个操作数。如果是则返回true否则返回false。e.g.123inta 5;intb 3;boolc (a b);// c的值为false3. 逻辑运算符逻辑运算符用于执行布尔逻辑操作。下表列出了C中支持的逻辑运算符运算符描述示例逻辑与a b||逻辑或a!逻辑非!a其中a和b代表要进行逻辑运算的两个布尔值。1逻辑与运算符逻辑与运算符用于检查两个条件是否都为真。只有当两个条件都为真时才会返回true否则返回false。e.g.123boola true;boolb false;boolc (a b);// c的值为false3逻辑非运算符逻辑非运算符!用于翻转一个布尔值。如果输入为true则返回false否则返回true。e.g.12boola true;boolb !a;// b的值为false4. 按位运算符按位运算符用于操作二进制数据。下表列出了C中支持的按位运算符运算符描述示例按位与a b|按位或a^按位异或a ^ b~取反~a左移a b右移a b其中a和b代表要进行按位运算的两个整数。1按位与运算符按位与运算符将两个二进制数的每一位进行比较并且如果两位都为1则该位输出1否则输出0。e.g.123inta 5;// 二进制表示为101intb 3;// 二进制表示为011intc a b;// c的值为1二进制表示为0012按位或运算符按位或运算符|将两个二进制数的每一位进行比较并且如果任意一位为1则该位输出1否则输出0。e.g.123inta 5;// 二进制表示为101intb 3;// 二进制表示为011intc a \| b;// c的值为7二进制表示为1113按位异或运算符按位异或运算符将两个整数的二进制表示进行“异或”操作并返回一个新的整数。当两个比特位相同时该比特位结果为 0否则为 1。e.g.123inta 5;// 二进制 101intb 3;// 二进制 011intc a ^ b;// 二进制 110 (即十进制 6)4按位取反运算符按位取反运算符对整数的二进制表示进行取反操作并返回一个新的整数。当一个比特位为 0 时结果为 1否则为 0。e.g12inta 5;// 二进制 101intb ~a;// 二进制 010 (即十进制 2)5左移位运算符左移位运算符将一个整数的二进制表示向左移动指定的位数并返回一个新的整数。左移 n 位相当于将这个数乘以 2 的 n 次方。e.g.12inta 5;// 二进制 101intb a 1;// 二进制 1010 (即十进制 10)6右移位运算符右移位运算符将一个整数的二进制表示向右移动指定的位数并返回一个新的整数。右移 n 位相当于将这个数除以 2 的 n 次方。e.g.12inta 5;// 二进制 101intb a 1;// 二进制 10 (即十进制 2)5. 取地址运算符C中取地址运算符用于获取变量或对象的内存地址表示为并且可以应用于任何变量、指针或对象。使用取地址运算符可以在程序中有效地管理内存和数据结构。取地址运算符的一般语法如下12345variable// 获取变量的地址object// 获取对象的地址type// 获取类型的地址复制讲解其中“variable”表示要获取地址的变量“object”表示要获取地址的对象“type”表示要获取地址的类型。e.g.1234567inta 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”的值以及指针所指向的值。