当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C语言的42个运算符及15个优先级

更新:03-17 整理:39baobao.com
字体:

[C语言中关于运算符的优先级问题请进]left to right 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。 所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符,因此使 a = b...+阅读

一、赋值运算符赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示。注意:赋值语句左边的变量在程序的其他地方必须要声明。得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为她它们出现在赋值语句的右边。

常数只能作为右值。例如:count=5;total1=total2=0;第一个赋值语句大家都能理解。第二个赋值语句的意思是把0同时赋值给两个变量。这是因为赋值语句是从右向左运算的,也就是说从右端开始计算。这样它先total2=0;然后total1=total2;那么我们这样行不行呢?(total1=total2)=0;这样是不可以的,因为先要算括号里面的,这时total1=total2是一个表达式,而赋值语句的左边是不允许表达式存在的。

二、算术运算符在C语言中有两个单目和五个双目运算符。符号功能+单目正-单目负*乘法/除法%取模+加法-减法下面是一些赋值语句的例子,在赋值运算符右侧的表达式中就使用了上面的算术运算符:Area=Height*Width;num=num1+num2/num3-num4;运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。取模运算符(%)用于计算两个整数相除所得的余数。

例如:a=7%4;最终a的结果是3,因为7%4的余数是3。那么有人要问了,我要想求它们的商怎么办呢?b=7/4;这样b就是它们的商了,应该是1。也许有人就不明白了,7/4应该是1.75,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。要想也得到小数部分,可以这样写7.0/4或者7/4.0,也即把其中一个数变为非整数。

那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。例如:a=(int)(7.0/4);因为7.0/4的值为1.75,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了1。那么思考一下a=(float)(7/4);最终a的结果是多少?单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。单目加运算符没有意义,纯粹是和单目减构成一对用的。

三、逻辑运算符逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。符号功能&逻辑与||逻辑或!逻辑非例如:5!3;0||-2&5;!4;当表达式进行&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。

逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:a=2,b=1;a||b-1;因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

四、关系运算符关系运算符是对两个表达式进行比较,返回一个真/假值。符号功能>大于=大于等于

c语言中的运算符优先级和结合性

(1)、单(右结合)

(1)、算

(3)、关

(2)、逻

(5)、条(右结合)

(1)、赋(右结合)

(1)、逗

(1);(未注明的未左结合)共15级 初级

1、() 圆括号、[] 下标运算符 、->指向结构体成员运算符、. 结构体成员运算符 单目运算

2、 ! 逻辑非运算符 、~ 按位取反运算符、++ 前缀增量运算符 、-- 前缀增量运算符、+ 正号运算符、- 负号运算符 、(类型) 类型转换运算符 、* 指针运算符 、 & 地址与运算符 、sizeof 长度运算符 算术运算符

3、* 乘法运算符 、 / 除法运算符 、% 取余运算符

4、 + 加法运算符 、- 减法运算符

5、>右移运算符 关系运算符、

6、=

7、== 等于运算符、!= 不等于运算符 逻辑运算符、

8、& 按位与运算符

9、^ 按位异或运算符

10、| 按位或运算符

11、& 逻辑与运算符

12、|| 逻辑或运算符 条件运算符

13、 ? : 条件运算符 赋值运算符

14、 = 、+=、 -= 、*=、 /= 、%=、 &=、 ^=、 |=、= 逗号运算符

15、 , 初

(1)、单(右结合)

(1)、算

(3)、关

(2)、逻

(5)、条(右结合)

(1)、赋(右结合)

(1)、逗

(1);(未注明的未左结合)优先级共15级,在每种后面标注的数字是该类包含的优先级别个数 初级

1、() 圆括号、[] 下标运算符 、->指向结构体成员运算符、. 结构体成员运算符 单目运算

2、 ! 逻辑非运算符 、~ 按位取反运算符、++ 前缀增量运算符 、-- 前缀增量运算符、+ 正号运算符、- 负号运算符 、(类型) 类型转换运算符 、* 指针运算符 、 & 地址与运算符 、sizeof 长度运算符 算术运算符

3、* 乘法运算符 、 / 除法运算符 、% 取余运算符

4、 + 加法运算符 、- 减法运算符

5、>右移运算符 关系运算符、

6、=

7、== 等于运算符、!= 不等于运算符 逻辑运算符、

8、& 按位与运算符

9、^ 按位异或运算符

10、| 按位或运算符

11、& 逻辑与运算符

12、|| 逻辑或运算符 条件运算符

13、 ? : 条件运算符 赋值运算符

14、 = 、+=、 -= 、*=、 /= 、%=、 &=、 ^=、 |=、= 逗号运算符

15、 ,

怎样记住c语言运算符优先级?有什么秘诀

没有口诀。 如果觉得下面记法可以,就当口诀吧。

(1)先(括号)内层,后(括号)外层。 解释:有扩号时,最内层的括号中的东西先算,再一层层向外。

(2)先函数,后运算。 解释:式中有函数,例如sqrt(),fabs(),sin()之类,先算函数。

(3)先算术,后关系,再逻辑。 解释:逻辑表达式中,混有算术运算,要先算算术(加减乘除,函数)运算,再算关系(大小,等不等)运算。最后算逻辑(或与非),得到真假。

(4)先乘除,后加减。 解释:同算术一样,先做乘除,后做加减。 逻辑运算符“与”又叫逻辑乘,逻辑运算符“或”,又叫逻辑加,按先乘除,后加减,“与”比“或”优先。

(5)先左,后右 解释:同级运算,先做左边的,后做右边的。

(6)搞不清,加括号。 解释:自己写算术表达式和逻辑表达式时,搞不清运算符优先级,可以加括号,括号里的总是先。

C语言中算术运算符的优先级是高于还是低于赋值运算符

是高于,赋值运算的优先级很低的,以下是优先级表:Operator Precedence ChartOperator TypeOperatorAssociativityPrimary Expression Operators() [] 。 ->expr expr--left-to-rightUnary Operators* & - ! ~ expr --expr (typecast) sizeof()right-to-leftBinary Operators* / %left-to-right ->>=== !=&^|&||Ternary Operator?:right-to-leftAssignment Operators= = -= *= /= %= >>= 可以看到赋值运算符只比逗号操作符高一点。

本文地址:https://www.39baobao.com/show/29_48717.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言运算符优先级问题注意一下&这个运算符 这个运算符有如下两个特点: 1.该运算符是左结合的(也就是说运算步骤是从左向右进行) 2.一旦当该运算符的左边的表达式的值为假(值为0)时,就认为整个&表达式的...

C语言中运算符优先级别的问题C++中 a++ a--符号的顺序是自右向左.即-a++=-(a++) 但是出现付值时.b=a++ b的值与等号右边的a的原值相等. 其次无论什么顺序都是自右向左(注意(a++)+(a++)+(a++) 这时的如果a的...

c语言的运算符优先级问题&两边的优先级是一样的即(i++ == 4)和(++j == 4 || k++ == 4)优先级一样 所以先执行i++ == 4 i++ 是后自加 所以i++ == 4不成立 对于 if(a&b) 有个截止特性,就是a为0 则 不会判断...

C语言运算符优先级你可以看看这个: 不过本人没有记那么多,但本人经高人指点,记住了一句话,用于记住常用运算符优先级,终身受用: "(逻辑)非 算(术运算符) 关(系运算符) (逻辑)与 (逻辑)或 条(件运算符) 赋(值运算...

C语言中运算符优先级排序1级优先级 左结合() 圆括号 [] 下标运算符 ->指向结构体成员运算符 . 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 前缀增量运算符 -- 前缀增量运...

C语言运算符优先级口诀C语言运算符及其优先级汇总表口诀 圆下箭头一顿号 非凡增减富强针地长 三乘除,四加减,五移位 千万别把鱼忘记,它在盛饭的厨子里 小灯大灯灯灯不等 爸喂鱼,舅疑惑,裸鸡也疑惑 十三...

怎样记住c语言运算符优先级没有口诀。 如果觉得下面记法可以,就当口诀吧。 (1)先(括号)内层,后(括号)外层。 解释:有扩号时,最内层的括号中的东西先算,再一层层向外。 (2)先函数,后运算。 解释:式中有函数,例如sqr...

C语言中的逻辑运算符优先级别是优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表)。成员选择(对象)对象。 成员名->成员选择(指针)对象指针->成员名2...

c语言中的运算符优先级和结合性求C语言的运算符优先级和结合性32个运算符:1级优先级 左结合 () 圆括号 [] 下标运算符 ->指向结构体成员运算符 。 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 前缀增量运算符 -- 前...