买网站服务器吗,ps做网站的分辨率多少钱,如何做网页制作,秦皇岛开发区建设局网站本章目录: 前言C语言运算符的分类1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 杂项运算符 运算符优先级 前言
在C语言中#xff0c;运算符是程序中执行各种操作的核心工具#xff0c;涉及算术运算、逻辑判断、位操作等多个方面。掌握C语言中的各种运… 本章目录: 前言C语言运算符的分类1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 杂项运算符 运算符优先级 前言
在C语言中运算符是程序中执行各种操作的核心工具涉及算术运算、逻辑判断、位操作等多个方面。掌握C语言中的各种运算符对于写出高效、简洁的代码至关重要。本文将对C语言的运算符进行详细解析包括其分类、常见使用方法及优化技巧。 C语言运算符的分类
C语言中的运算符可以按功能划分为以下几类
算术运算符用于进行数学运算。关系运算符用于比较两个操作数。逻辑运算符用于逻辑判断。位运算符用于处理二进制数据。赋值运算符用于给变量赋值。杂项运算符包括sizeof()、指针操作符、三元运算符等。
1. 算术运算符
算术运算符用于进行基本的数学计算C语言提供了加、减、乘、除等多种运算。
运算符描述示例加法A B-减法A - B*乘法A * B/除法A / B%取余A % B自增A--自减A--
示例
#include stdio.hint main() {int a 21;int b 10;int c;c a b;printf(Line 1: c %d\n, c);c a - b;printf(Line 2: c %d\n, c);c a * b;printf(Line 3: c %d\n, c);c a / b;printf(Line 4: c %d\n, c);c a % b;printf(Line 5: c %d\n, c);return 0;
}输出
Line 1: c 31
Line 2: c 11
Line 3: c 210
Line 4: c 2
Line 5: c 12. 关系运算符
关系运算符用于比较两个操作数的大小或相等性通常用于控制结构如if语句中。
运算符描述示例等于(A B)!不等于(A ! B)大于(A B)小于(A B)大于或等于(A B)小于或等于(A B)
示例
#include stdio.hint main() {int a 21, b 10;if (a b) {printf(a equals b\n);} else {printf(a does not equal b\n);}return 0;
}3. 逻辑运算符
逻辑运算符主要用于布尔值运算在条件表达式中判断多个条件是否成立。
运算符描述示例逻辑与(A B)||逻辑或(A || B)!逻辑非!(A B)
示例
#include stdio.hint main() {int a 5, b 10;if (a b) {printf(Both a and b are non-zero\n);}if (a || b) {printf(At least one of a or b is non-zero\n);}return 0;
}4. 位运算符
位运算符用于操作数字的二进制位这在一些低级编程、嵌入式开发中非常有用。
运算符描述示例按位与A B|按位或A | B^按位异或A ^ B~按位取反~A左移A 2右移A 2
交换两个数的值
使用异或运算符^可以不借助临时变量交换两个数的值
#include stdio.hint main() {unsigned int a 60; // 0011 1100unsigned int b 13; // 0000 1101a a ^ b; // a 0011 0001b a ^ b; // b 0011 1100a a ^ b; // a 0000 1101printf(a %d, b %d\n, a, b); // 输出交换后的结果return 0;
}输出
a 13, b 605. 赋值运算符
赋值运算符用于将右侧的值赋给左侧的变量。C语言还提供了复合赋值运算符如、-等简化了某些常见操作。
运算符描述示例赋值C A B加法赋值C A-减法赋值C - A*乘法赋值C * A/除法赋值C / A%求余赋值C % A
示例
#include stdio.hint main() {int a 21, c;c a;printf(c %d\n, c);c a;printf(c a: %d\n, c);c * a;printf(c * a: %d\n, c);return 0;
}6. 杂项运算符
C语言中还有一些独特的运算符像sizeof、、*和三元运算符。
运算符描述示例sizeof获取变量的大小sizeof(a)获取变量地址a*解引用指针*ptr?:三元运算符condition ? x : y
示例
#include stdio.hint main() {int a 10;int *ptr a;// sizeof 运算符printf(Size of a: %lu\n, sizeof(a));// 指针操作符printf(Address of a: %p\n, (void*)a);printf(Value at ptr: %d\n, *ptr);// 三元运算符int b (a 10) ? 20 : 30;printf(b %d\n, b);return 0;
}运算符优先级
运算符优先级决定了表达式中各个操作数计算的顺序。较高优先级的运算符会先执行。
类别运算符结合性后缀() [] - . --从左到右一元 - ! ~ -- (type) * sizeof从右到左乘除* / %从左到右加减 -从左到右移位 从左到右关系 从左到右相等 !从左