猫史档案馆


【趣玩C语言·06】算术运算符&运算优先级

用户:科普喵科普喵查看:2 回复:6 评论:2 创建时间:2018-11-15T18:56:25


喵~

又到每周C语言小课堂啦!

+、-、×、÷符号相信大家都很熟悉,

但是你知道程序里的运算符是怎么样的吗?

 

emotion_编程猫_紧张

 

本期讲解C语言的运算符, 

你准备好了吗?

出发!

 

center_image

 

一、算术运算符

center_image

注:C语言中没有“×,÷”算术符号

 

1.相除运算符 /

(1)当运算符 / 的操作数(被除数和除数)均为整数时,结果为取商(取整)。

         例如:17/5 结果为两数相除的商 3

 

(2)当运算符 / 的操作数中有一个或两个有小数,结果与数学中除法运算相同,包含整数部分和小数部分。

         例如:9/2.5 结果为 3.600000

 

2.求余运算符%

(1)当运算符 % 的操作数(被除数和除数)均为整数时,结果为取余。

         例如:17%3 结果为两数相除的余数 2

 

(2)当运算符 % 的操作数中有一个或两个存在小数时,则语法错误。

         例如:10.0%3则是错误的

 

(3)运算后的符号取决于被模数(被除数)的符号

         例如:(-10)%3 = -1; 而10%(-3) = 1

 

         注:该运算只适合用两个整数进行取余运算

 

3.自增(++)与自减(--)运算符 center_image

注:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1;

无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

 

center_image

             输出结果为:

center_image

 

4.运算符号的优先级

 

center_imagecenter_image

 代码分析

 

 (1) b=++a+4;

      该语句中运用到三个运算符:自增运算符 ++、加法运算符 + 、赋值运算符 =,三个运算符的优先级是 ++ 最高,其次是求和,最低的是赋值运算符。

 

该语句等价于 b=(++a)+4;

拆分为:a=2+1;b=3+4;a=3;

 

      先取变量 a 的值 2 加 1 后的结果 3 作为 ++a 表达式的值,然后把该表达式的值 3 与 4 求和的值 赋值给变量 b,即 b 值为 7。执行完该语句后变量 a 自身值增 1,其值变为 3。

 

(2) c=3*a++;

 

 等价于 c=3*(a++);

拆分为:a=3+1;c=3*4;a=4;

 

      把 3 与 a++ 求积的结果赋给 c,而 a++ 表达式表示先把变量 a 的值 3 作为该表达式的值,即 c=3*3; 同时变量 a 自身值增 1,变为 4。

 

(3) d=a--*3;

 

等价于 d=(a--)*3;

拆分为:a=4;d=4*3;a=4-1;

 

      先取变量 a 的值 4 作为表达式 a-- 的值,把 4*3 的值 12 赋给变量 d。同时变量 a 自身减 1,变为 3。

 

(4) printf("a=%d,b=%d,c=%d,d=%d", a,b,c,d);

      双引号中有 4 个输出格式控制符,依次使用输出列表中 4 个输出项 a、b、c、d 的值替换。

 

(5)运行结果为:

a=3,b=7,c=9, d=12

center_image

 

center_image

 

本期作业(单选题)

 

   int a = 3; b = 4; 计算 a+b%(a+b)/a+a*b-b 该算式的运算结果( )

 

   A、算式结果为:11                       B、算式结果为:12

   C、算式结果为:13                      D、算式结果为:14

 

center_image

 

上期答案:B

【趣玩C语言·05】强制类型转换 https://www.codemao.cn/community/167051

 

也许你还想看:

【趣玩C语言】“ Hello World”猫厂新栏目开讲啦!https://www.codemao.cn/community/166339

【趣玩C语言·02】变量和赋值 https://www.codemao.cn/community/166502

【趣玩C语言·03】基本数据类型&输出格式https://www.codemao.cn/community/166706

【趣玩C语言·04】不可改变的常量&自动类型转换 https://www.codemao.cn/community/166878

 

本期优秀技术帖

1.糖醋排骨&少院士 【少院士讲堂】第十三期:悄喵打上马赛克(resenwords函数制作https://www.codemao.cn/community/167117

2.麦克斯 【萌新也能懂算法】最短路径(一)https://www.codemao.cn/community/167072

 

更多编程小技巧

请关注【编程技巧】分区

和科普喵一起成为编程大佬吧~

 


回复

上一页1 页 / 共 1下一页
无情的AC自动鸡无情的AC自动鸡

emotion_编程猫_点赞

点赞0


评论


风少年风少年

 int a = 3; b = 4; 计算 a+b%(a+b)/a+a*b-b

3+4%(3+4)/3+3*4-4

=3+4%7/3+12-4

=3+3/3+12-4

=3+1+12-4

=12

所以答案=12emotion_耶

点赞0


评论


苦咖啡10苦咖啡10

点赞0


评论


Visual Basic ScriptVisual Basic Script

center_image

点赞0


评论


xiaole6324xiaole6324

哎呀,第一课回帖的人咋嫩多,后面的咋嫩少呀,估计他们还在找IDE呢(集成开发环境,含有编辑器、编译器等)

点赞0


评论


xiaole6324xiaole6324

emotion_编程猫_厉害了

点赞0


评论