C语言基础知识:操作符详解(附操作符优先级及结合性一览表)

目录

🐯一.操作符的分类

🦊1.算术操作符

😸2.移位操作符

😼3.位操作符

🐱4.赋值操作符

😻5.单目操作符

🦁6.关系运算符

🐼7.逻辑运算符

🦝8.条件操作符(三目操作符)

🐻‍❄️9.逗号表达式

🦄10.下标引用,函数调用和结构成员

🐋二.操作符的属性

🐰1.操作符的优先级

🦖2.操作符的结合性


一.操作符的分类

1.算数运算符

算数运算符很简单,就是我们平时用的加减乘除再加个取模操作符( +  -  *  /  %)。

需要注意的是 % 操作符,它是一个双目操作符,使用它需要两个操作数,且这两个操作数都必须得是整数;

如果没作说明,则两数相除得到得就是商,例如 5/2=2,5.0/2.0=2.5。这也是初学者常常忽略的地方,使用时要特别注意。

2.移位操作符

<<  左移操作符 : 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)例子:

 >> 右移操作符:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,即左边补符号位,右边丢弃。

注意移位操作符的操作数只能是整数,且不要移动负数位,这个标准是未定义的

如:2<<-1  x

3.位操作符

& 按位与:两个操作数的对应的二进制位如果都是1,则为1,其他都为0。

例:

 | 按位或:两个操作数的对应的二进制位如果有1个1,计算结果就为1,两个都是0,才是0;

^ 按位异或:两个操作数的对应的二进制位如果相同则为0,不相同则为1.

规律:a^a=a;

           a^0=0;

4.赋值操作符

就是一个等于号 ( = ),在C语言中一个等于号表示的是赋值,两个等于号才是判断等于,这点也经常被忽略。

复合运算符:+=  -=  *=  /=  %=.....  理解的方法 a+=1  ==  a=a+1

5.单目操作符

! 逻辑反操作:用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假;

例:!(A && B) 为真;

-   负值;

+  正值;

&  取地址运算符;

*  间接访问操作符也叫解引用操作符;

这个操作符和 & 操作符经常应用在指针中。

sizeof   :计算操作数的类型长度,单位是字节,返回值是无符号整型;

~  对一个数的二进制按位取反

-- 和 ++ :他们都分为前置++(--)和后置++(--);

前置++(--)是先++,再赋值;

后置++(--) 是先赋值,再++(--);

例子:

 (类型) 强制类型转换;

能将一个类型强制转换成另一个类型,具体使用方法请看下图:

 注意这里的类型转换是不符合四舍五入规则的

6.关系操作符

>       >=      <=        

!=   用来测试“ 不想等 ” 

==  用来测试“ 相等 ”

7.逻辑操作符

&&  逻辑与:相当于“ 且 ”,两边都为真时,才为真;

例:1&&0 为假;

||   逻辑或:相当于“ 或 ”,只要有一边为真,则为真;

例:1||0  为真;

注意:区分逻辑与 && 和按位与 &;

           区分逻辑或  ||  和按位或  |;

1&2==0

1&&2==1

1|0==1

1||0==1

8.条件操作符(三目操作符)

即:exp1?exp2:exp3

意思为:如果 exp1为真,则返回表达式exp2的值,否则返回表达式exp3的值

实例:

 9.逗号表达式

exp1,exp2,exp3,exp4,....expn

就是用逗号隔开多个表达式,从左至右依次执行,整个表达式的结果是最后一个表达式的结果

例:

 如果函数传参中含有逗号表达式,则实参的个数实际上就是逗号表达式的个数,即括号的个数

如:

 10.下标引用,函数调用,结构成员

下标引用操作符: 一个数组名 + 一个索引值

 函数调用:()

结构成员:

.   结构体成员名

->  结构体指针 - >  成员名

例:

 二.操作符的属性

1.操作符的优先级

2.操作符的结合性

 

上表总结出如下规律:

1.结合方向只有三个是从右往左,其余都是从左往右。
⒉.所有双目运算符中只有赋值运算符的结合方向是从右往左。
3.另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是单目运算符,一个是三目运算符。4.C语言中有且只有一个三目运算符。
5.逗号运算符的优先级最低,要记住。
6.此外要记住,对于优先级:算术运算符>关系运算符>逻辑运算符>赋值运算符。逻辑运算符中“逻辑非!”除外。

一些容易出错的优先级问题

上表中,优先级同为1 的几种运算符如果同时出现,那怎么确定表达式的优先级呢?这是很多初学者迷糊的地方。下表就整理了这些容易出错的情况:

 

   🦖🦖本篇文章到此就结束啦,如有错误或是建议,欢迎小伙伴们指出 。

   😼😼谢谢你的阅读。

  • 30
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 在 C 语言中,表达式中的值是根据运算符的优先级结合性来计算的。在表达式中,先计算括号内的表达式,然后按照优先级从高到低的顺序计算各个运算符的值,最后得出整个表达式的值。如果有相同优先级的运算符,那么按照结合性的方向进行计算。 ### 回答2: 在C语言中,表达式中的值是通过对操作数的计算来得出的。表达式可以包含常量、变量、运算符和函数调用。 首先,编译器会根据操作数的数据类型和运算符的优先级进行计算。常见的数据类型包括整型、浮点型、字符型等。不同的数据类型在计算过程中可能会有不同的运算规则。 其次,编译器会按照运算符的优先级结合性进行计算。优先级高的运算符会被优先计算,而结合性决定了当有多个相同优先级的运算符出现时,计算的顺序是从左到右还是从右到左。 在执行计算过程中,编译器会根据操作数和运算符的类型进行类型转换。例如,当一个表达式中同时包含整型和浮点型的操作数时,编译器会将整型转换为浮点型进行计算。这个过程叫做隐式类型转换。 此外,表达式中还可能涉及到函数调用。当遇到函数调用时,编译器会按照函数的定义和参数传递的方式来计算函数的返回值,并将其作为操作数参与表达式的计算。 最后,表达式的计算结果会被存储在一个变量中,或者被用于一个更大的表达式的计算中。这样,我们就可以通过计算表达式来得出一个具体的值。 总而言之,C语言中的表达式的值是通过对操作数进行计算,并按照运算符的优先级结合性和类型转换规则来得出的。编写正确的表达式可以帮助我们在程序中实现具体的计算逻辑。 ### 回答3: 在C语言中,表达式的值是通过计算表达式中的操作数和运算符得出的。表达式中的值可以是常量、变量、函数调用、操作符以及它们的组合。 首先,C语言中的常量是固定的值,如整数、浮点数或字符。这些常量可以直接使用,并且它们的值不会发生变化。 其次,变量是用来存储数据的标识符,它们的值可以在程序的执行过程中发生变化。变量必须先声明,然后才能使用。可以通过给变量赋值来改变其值。 再次,表达式中的函数调用是指调用已定义的函数,并通过传递参数来获取函数的返回值。函数可以是库函数,也可以是用户自定义的函数。 另外,表达式中的操作符用于在操作数之间执行特定的操作,如加法、减法、乘法、除法等。C语言中有一系列的操作符,如算术操作符、关系操作符、逻辑操作符等。这些操作符具有不同的优先级结合性,因此在计算表达式时必须遵循特定的规则。 在计算表达式时,C语言遵循一种称为"逗号运算符"的规则。即从左到右依次计算操作数,并根据操作符优先级结合性来计算表达式的值。同时,括号可以改变计算的顺序。 总的来说,C语言中的表达式的值是根据操作数和操作符的组合计算出来的。在计算表达式时,常量的值不会改变,而变量的值可以通过赋值操作来改变。此外,函数调用可以返回函数的返回值,而操作符可以在操作数之间执行特定的操作。要准确地计算表达式的值,需要遵守C语言中的运算规则和优先级

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值