基本运算符

本文详细介绍了运算符的概念、分类及其在编程中的应用,包括一元、二元、三元运算符,逻辑运算符,比较运算符,组合赋值运算符,自加自减运算符,并探讨了运算符的优先级和方向,以及如何正确使用这些运算符以提高编程效率。


一、运算符概念

运算符是检查、改变、合并值的特殊符号或短语


二、运算符分类

2.1分类方式

1)按参与运算的数的个数

分为一元(一个数)、二元(两个数)、三元(三个数)

2)按功能分

逻辑啊什么鬼的超多

3)

按优先级、按运算方向

a+b*c 从右向左,从左向右

方向:从右向左

优先级:最低

注意:左侧只能有一个常量或变量

let(x,y)=(a+b,6)这样才行哒


组合赋值运算符(+ - * /)

a+=1//等同于a=a+1


自加自减

不能用于常量只能用于变量

1)var a =5

var a++或++6

2)可以写在变量前,也可以写在变量后,写在变量前面先运算后赋值:

写在变量后,先赋值后运算。

var=a

var x=a++ //x=5 a=6

var y=++a //y=6 a=5



比较运算符

比较两边表达式,返回一个bool值 如果比较运算符两侧表达式和运算符表示的逻辑不匹配,整个表达式为false;

反之若匹配,整个表达式为true



逻辑运算符

和比较运算符类似,逻辑表达式的值也是bool型

参与逻辑运算的都是bool值

bool值 true  flase 

 &&:逻辑与    表示逻辑乘法

|  | :逻辑或   表示逻辑加法

!: 逻辑非  取反   单目运算符



常用运算符优先级

算数运算符>比较运算符>逻辑运算符>赋值


条件

if...else

三种形式

1) if  没有else

    if条件{

满足条件执行的语句

}

不满足条件,跳过if,执行其后语句

2)

if...else

if 条件{

满足条件执行的语句...

}

else{


不满足条件执行的语句...

}

3)if...else  if...  else...

if条件1{执行的语句...

}

else if ‘条件2{

满足条件2执行的语句...

}

....

else if 条件n

{

满足条件N执行的语句

}

else{

条件1到n都不满足的时候,执行的语句...

}

前提:所以条件没有交集

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]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值