基本运算符

1.关系运算符

常用关系运算符 > ,< , "== “, " !=” , >= , <= ;
大于: 左 > 右 — 真/假
大于等于: 左 >= 右 — 真/假
小于: 左 < 右 — 真/假
小于等于: 左 <= 右 — 真(1)/假(0)
等于等于:比较两个数据是否相等 10 == 10 -->1
不等于:左 != 右 判断左右两个值是否相等,如果不相等结果是真
注意:
1.不可以对关系运算符进行连续使用 例如 1<x<3
2.在使用==运算符的时候,把常量放左值,变量放右值,防止丢失=号变成赋值
3.一般在if等判断条件中使用

2.逻辑运算符

逻辑与(&&) 左表达式 && 右表达式–>如果左右都为真结果为真否则为假
按位与(&) 二进制数&二进制数—>结果是数值。
逻辑或(||) 左表达式 || 右表达式–>只要满足一个就为真。
逻辑非(!) 单目 !表达式 -->如果表达式为真,结果为假,如果表达式为假,结果为真
注意:1.对于逻辑与,只要第一个表达式不满足,第二个不会执行(短路)
2.对于逻辑或,如果第一个条件满足,第二个表达式不会执行(短路)
3.在三个运算符中,优先级顺序 !> && > ||

3.位运算符:

| 按位或—有1则1
& 按位与—有0则0
~ 按位取反—0变1,1变0
^ 按位异或----相同为0,不同为1。
<< 二进制左移位: 二进制数据 << 位数。符号位不变
案例 12<<3 00001100000–> 64+ 32 =96
>> 二进制右移位: 二进制数据 >> 位数. 注意:向小靠拢
结论:左移为把数据乘以2的n次方
右移为把数据除以2的n次方

4.三目运算符:表达式1?表达式2:表达式3;

 意义: 表达式1如果为真,执行表达式2,如果为假执行表达式3;
 等价: if(表达式1){ 表达式2 }else {表达式3};

5.类型转换(隐式类型转换)

    double <--- float
	  ↑
	 long
	  ↑
	unsigned
	  ↑
	  int <-- char/short
 强制类型转换: 
   格式:(类型)变量  案例 int x = 10; double y = (double)x;
   
   优先级(高->低)         运算符
          1              ()   []
		  2              ++  --  ~   !
		  3              *  /  %
		  4              +  -
		  5              >>   <<
		  6               >  <
		  6             == !=
		  7             & > ^ > |
		  8             && > ||
		  9             三目
		  10           赋值运算符

助记方法
算术和一位好基友的关系不是很好
因为于一飞和与或三等兄弟逗起来了。
附上运算符优先级表:
在这里插入图片描述

C语言中的基本运算符是编写程序时进行数据处理的核心工具,它们用于执行数学运算、逻辑判断、位操作、赋值等任务。以下是基本运算符的分类及其使用方法。 ### 算术运算符 算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法和取模。此外,还有递增和递减运算符用于对变量进行自增或自减操作。 - `+`:加法运算符,用于两个操作数相加。 - `-`:减法运算符,用于从一个操作数中减去另一个。 - `*`:乘法运算符,用于两个操作数相乘。 - `/`:除法运算符,用于一个操作数除以另一个操作数。 - `%`:取模运算符,用于得到两个整数相除后的余数。 - `++`:递增运算符,用于将操作数的值增加1。 - `--`:递减运算符,用于将操作数的值减少1。 ```c int a = 10, b = 3; int sum = a + b; // sum = 13 int difference = a - b; // difference = 7 int product = a * b; // product = 30 int quotient = a / b; // quotient = 3 (integer division) int remainder = a % b; // remainder = 1 a++; // a = 11 b--; // b = 2 ``` ### 关系运算符 关系运算符用于比较两个值之间的关系,结果是一个布尔值(真或假)。 - `>`:大于 - `<`:小于 - `>=`:大于等于 - `<=`:小于等于 - `==`:等于 - `!=`:不等于 ```c int x = 5, y = 5; int isGreater = x > y; // isGreater = 0 (false) int isEqual = x == y; // isEqual = 1 (true) ``` ### 逻辑运算符 逻辑运算符用于组合多个关系表达式,以形成更复杂的条件判断。 - `!`:逻辑非,用于反转操作数的逻辑状态。 - `&&`:逻辑与,当两个操作数都为真时,结果为真。 - `||`:逻辑或,只要有一个操作数为真,结果就为真。 ```c int p = 1, q = 0; int result1 = !q; // result1 = 1 (true) int result2 = p && q; // result2 = 0 (false) int result3 = p || q; // result3 = 1 (true) ``` ### 位运算符运算符用于对操作数的二进制位进行操作。 - `<<`:左移运算符,将操作数的二进制位向左移动指定的位数。 - `>>`:右移运算符,将操作数的二进制位向右移动指定的位数。 - `~`:按位取反运算符,将操作数的每一位取反。 - `|`:按位或运算符,将两个操作数的对应位进行或操作。 - `^`:按位异或运算符,将两个操作数的对应位进行异或操作。 - `&`:按位与运算符,将两个操作数的对应位进行与操作。 ```c unsigned int m = 5; // binary: 0000 0101 unsigned int n = 9; // binary: 0000 1001 unsigned int leftShift = m << 1; // leftShift = 10 (binary: 0000 1010) unsigned int rightShift = m >> 1; // rightShift = 2 (binary: 0000 0010) unsigned int bitwiseNot = ~m; // bitwiseNot = 4294967290 (binary: 1111 1111 1111 1111 1111 1111 1111 1010) unsigned int bitwiseOr = m | n; // bitwiseOr = 13 (binary: 0000 1101) unsigned int bitwiseXor = m ^ n; // bitwiseXor = 12 (binary: 0000 1100) unsigned int bitwiseAnd = m & n; // bitwiseAnd = 1 (binary: 0000 0001) ``` ### 赋值运算符 赋值运算符用于将值赋给变量。 - `=`:简单赋值运算符,将右侧的值赋给左侧的变量。 - `+=`、`-=`、`*=`、`/=`、`%=`:扩展赋值运算符,先进行相应的算术运算,然后将结果赋给左侧的变量。 ```c int o = 20; o += 5; // o = 25 o -= 3; // o = 22 o *= 2; // o = 44 o /= 4; // o = 11 o %= 3; // o = 2 ``` ### 条件运算符 条件运算符是C语言中唯一的三元运算符,用于根据条件选择两个值中的一个。 - `? :`:条件运算符,格式为`condition ? value_if_true : value_if_false`。 ```c int age = 20; char *status = (age >= 18) ? "Adult" : "Minor"; // status = "Adult" ``` ### 逗号运算符 逗号运算符用于在单个表达式中顺序执行多个表达式,整个表达式的值是最后一个表达式的值。 ```c int r = (1, 2, 3); // r = 3 ``` ### 指针运算符 指针运算符用于处理内存地址。 - `*`:间接寻址运算符,用于访问指针所指向的值。 - `&`:地址运算符,用于获取变量的内存地址。 ```c int s = 10; int *ptr = &s; // ptr holds the address of s int value = *ptr; // value = 10 ``` ### 求字节数运算符 `sizeof()`运算符用于获取数据类型或变量所占用的内存大小(以字节为单位)。 ```c int t; size_t sizeOfInt = sizeof(t); // sizeOfInt = 4 (on most systems) size_t sizeOfDouble = sizeof(double); // sizeOfDouble = 8 (on most systems) ``` ### 强制类型转换运算符 强制类型转换运算符用于将一种数据类型的值转换为另一种数据类型。 ```c float u = 3.14; int v = (int)u; // v = 3 ``` ### 成员运算符 成员运算符用于访问结构体或联合的成员。 - `.`:用于访问结构体变量的成员。 - `->`:用于通过指向结构体的指针访问成员。 ```c typedef struct { int id; char name[20]; } Person; Person person1; person1.id = 1; // Using . to access member Person *ptrPerson = &person1; ptrPerson->id = 2; // Using -> to access member through pointer ``` ### 下标运算符 下标运算符用于访问数组中的元素。 ```c int array[5] = {1, 2, 3, 4, 5}; int thirdElement = array[2]; // thirdElement = 3 ``` ### 运算符优先级和结合性 运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值