C语言——运算符与表达式
知识点一:表达式
1)什么是表达式:在C语言中,一个或多个运算对象与零个或多个运算符组成表达式;
例:
100
5 + 10
a / b
a * 10 / b + c
2)表达式的结果:
printf("%d\n", 5 + 10);
运算符与运算对象进行运算操作必然产生一个结果,因此每个表达式都有一个结果。例如上面的表达 式 5 + 10 的结果为15。
3)表达式语句:
a)表达式后面加上分号构成表达式语句;
b)C语言中表达式不能单独存在,必须以表达式语句的形式存在;
例:
100;
5 + 10;
a / b;
a * 10 / b + c;
“但下面表达式5+10后面却没有分号”
printf("%d\n", 5 + 10);
#因为 5 + 10 是一个子表达式,函数名加上括号运算符,构成了一个函数调用表达式。 所以, 5 + 10 为函数调用表达式的子表达式,而函数调用表达式后面加了分号了。
#函数调用表达式也有一个表达式结果,这个结果就是函数的返回值了。
知识点二:加法运算符+
1)+ 为加法运算符,它左右边各需要一个运算对象,构成 加法运算符表达式;
2)表达式结果:加法表达式的结果为左右表达式结果相加;
int a, b;
a = 200;
b = 100;
a + b; // 表达式结果为300
知识点三:减法运算符—
1)- 为减法运算符,它左右边各需要一个运算对象,构成 减法运算符表达式;
2)表达式结果:减法表达式的结果为左右表达式结果相减;
int a, b;
a = 200;
b = 100;
a - b; // 表达式结果为100
知识点四:符号运算符 +、-
1)+ 用于标明一个表达式的正负, - 用于改变一个表达式的正负;
2)与加减运算符不同的是,它仅需要在运算符右边有一个运算对象;
3)表达式结果:
a)+ 号表达式的结果为右边运算对象的值;
b)- 号表达式的结果为右边运算对象值的相反数;
+100; // 表达式结果为100
-100; // 表达式结果为-10
4)用于改变表达式的正负:
int a = 100;
-a; // 表达式结果为-100
5)请注意:+不能改变表达式的正负,请使用负负得正;
int a = -100;
+a; // 表达式结果为-100
-a; // 表达式结果为100
知识点五:乘法运算符 *
1)* 为乘法运算符,它左右边各需要一个运算对象,构成 乘法运算符表达式;
2)表达式结果:乘法表达式的结果为左右表达式结果相乘;
3)* 是乘法运算符,注意不要误用为字母x;
int a, b;
a = 200;
b = 100;
a * b; // 表达式结果为20000
知识点六:除法运算符 /
1)/ 为除法运算符,它左右边各需要一个运算对象,构成 除法运算符表达式 ;
2)表达式结果:除法表达式的结果为左运算对象除以右运算对象;
int a, b;
a = 200;
b = 100;
a / b; // 表达式结果为2
3)整型无法整除问题:
a)对于除法,请特别注意整型无法整除时,出现浮点类型数据的问题;
int a, b, c;
a = 5;
b = 2;
c = a / b;
#a 的值为 5 , b 的值为 2 。那么 5 除以 2 ,应该等于 2.5 。 但是,使用 int 来接收 2.5 好像不太对,那我们把 c 改为 float 或 double 。
int a, b;
a = 5;
b = 2;
float c;
c = a / b;
printf("%f\n", c);
#显然结果依然不对
#在C语言里面,整型与整型运算的结果,依然是一个整型。结果的小数部分被丢弃,这一过程被称作截断。a / b后,结果仍然是一个整型,数值已经被截断了,这时候,我们再赋给一个浮点型的c。也只能 是整数2转成浮点2.0了,没有起到效果。
&那我们将a,b,c都改为float,这样就不会出现截断了。a,b将会进行浮点运算,结果也是一个浮点数类型float;
float a, b, c;
a = 5;
b = 2;
c = a / b;
printf("%f\n", c);
知识点七:求余运算符 %
1)% 为求余运算符,它左右边各需要一个运算对象,构成 求余运算符表达式 ;
2)表达式结果:求余表达式的结果为左运算对象除以右运算对象的余数;
例如:10%3,10除以3,等于3余1
int a, b;
a = 10;
b = 3;
a % b; // 表达式结果为1
知识点八:赋值运算符 =
1)= 为赋值运算符,它左右各需要一个运算对象,构成 赋值运算符表达式;
2)赋值 表达式的结果为等号右边的运算对象的值;
3)赋值表达式还会将等号右边运算对象的值,传递给左边的运算对象;
a = 100; // 赋值表达式语句
4)赋值与初始化的区别:
int a = 100; // =表示初始化,不是赋值运算符
a = a + 150; // 赋值运算符,将右边的表达式结果赋值给左边的变量a。
在上面的代码中,第一行代码声明了一个变量a。请注意,声明变量时并将它初始化为100所用的 = 号, 不是赋值运算符,而是变量初始化。虽然初始化和赋值很像,但是 = 号左边并不是一个单纯的变量,而是变量的声明。你可以借此来区别它们。
5)求一个赋值表达式的结果:
表达式 a = a + 50 是一个复合表达式,先求得子表达式 a + 50 的结果,为150。再求表达式 a = 150 的 结果,即 150 。另外,赋值表达式除了计算出表达式的结果外,还会将 150 赋值给变量 a
6)不能给常量赋值:给常量赋值是错误的,因为常量不能被更改;
"Hello" = "HelloWorld";
'a' = 'b';
100 = 200;
“以上赋值为错误方式”
知识点九:自增、自减运算符
1)++ 为指自增运算符, -- 为自减运算符。它们仅需要运算符左边或右边有一个运算对象即可;
2)运算符置于左边被称作前缀模式。例如: ++i --i ;
3)运算符置于右边被称作后缀模式。例如: i++ i--;
4)前缀模式:
#include <stdio.h>
int main()
{
int a, b;
a = 10;
b = 10;
printf("%d %d\n", ++a, --b);
printf("%d %d\n", a, b);
return 0;
}
a)前缀模式表达式结果:
++ 与右运算对象构成前缀自增表达式,表达式结果为运算对象值加1;
- - 与右运算对象构成前缀自减表达式,表达式结果为运算对象值减1;
b)前缀模式对运算对象的操作:
自增表达式:将运算对象加1;
自减表达式:将运算对象减1;
5)后缀模式:
#include <stdio.h>
int main()
{
int a, b;
a = 10;
b = 10;
printf("%d %d\n", a++, b--);
printf("%d %d\n", a, b);
return 0;
a)后缀模式表达式结果:
++ 与左运算对象构成后缀自增表达式,表达式结果为运算对象值;
-- 与左运算对象构成后缀自减表达式,表达式结果为运算对象值;
b)后缀模式对运算对象的操作:
自增表达式:将运算对象加1;
自减表达式:将运算对象减1;
知识点十:一元运算符,二元运算符
1)一元运算符:只有一个运算对象的运算符。例如:自增运算符 ++ ,自减运算符 -- ;
2)二元运算符:有两个运算对象的运算符。例如:赋值运算符 = ,加法运算符 +;
知识点十一:运算符优先级
*C语言的四则运算符优先级和数学中的一致。先算括号里面的,先乘除后加减;
#include <stdio.h>
int main()
{
int a, b;
a = 10 * 2 + 4 * 3;
b = 10 * (2 + 4) * 3;
printf("%d %d", a, b);
return 0;
}
标记 | 操作符 | 类型 | 优先级 |
++ -- | 自增,自减 | 前缀 | 16 |
++ -- | 自增,自减 | 后缀 | 15 |
+ - | 正号,负号 | 单目 | 15 |
* / % | 乘,除,取余 | 双目 | 13 |
+ - | 加,减 | 双目 | 12 |
= | 赋值 | 双目 | 2 |
优先级越高的,在运算里面,需要被优先处理。例如:乘除优先级为13大于加减的12
C语言——运算符与表达式相关推荐
- c语言的运算答案,C语言运算符与表达式的练习题答案.doc
C语言运算符与表达式的练习题答案.doc C语言运算符与表达式的练习题单项选择题 1以下选项中,正确的 C 语言整型常量是( D ). A. 32L B. 510000 C. -1.00 D. 567 ...
- c语言表达式运算符,C语言运算符与表达式
<C语言运算符与表达式>由会员分享,可在线阅读,更多相关<C语言运算符与表达式(18页珍藏版)>请在人人文库网上搜索. 1.2020/6/26,3,1,陈孝则,运算符和表达式, ...
- c语言等号运算符先计算右边,C语言运算符和表达式.ppt
<C语言运算符和表达式.ppt>由会员分享,可在线阅读,更多相关<C语言运算符和表达式.ppt(29页珍藏版)>请在人人文库网上搜索. 1.运算符和表达式,夏涛,运算符与表达式 ...
- c语言运算符与表达式ppt,c语言运算符与表达式.ppt
c语言运算符与表达式.ppt 第三讲 运算符与表达式 运算符与表达式 [例] 自增.自减运算符的用法与运算规则示例. /*程序功能:自增.自减运算符的用法与运算规则示例*/ main int x 6, ...
- c语言运算符和表达式说课,c语言运算符和表达式说课材料.ppt
c语言运算符和表达式;;学习运算符,主要掌握以下4点:;;;;§3.1 算术表达式;;;;整除和求余数的特殊用处;;;;;// 连续的---表示前两个是对a的自减,最后的-表示减法运算;3.1.2 算 ...
- C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
1.算术运算符:+-*/% %要求参与运算的两个量必须是整型或字符型的,实型(float,double等)的数据不能做%运算. 算术表达式 运算符和数据可以组成运算的式子,称为表达式.举例:10+20 ...
- 第三章 C语言运算符,表达式,序列点,类型转换
文章目录 赋值运算符 对象.左值.右值 算术运算符 关系运算符 逻辑运算符 备选拼写 iso646.h头文件 条件运算符 逗号运算符 表达式 语句 表达式语句 复合语句 迭代语句 选择语句 跳转语句 ...
- 第三章 C语言运算符与表达式练习题
第三章 运算符与表达式练习题 一.单项选择题 1.下列数据中属于"字符串常量"的是( ). A."a" B. {ABC} ...
- C语言运算符与表达式课件,C语言课件(运算符和表达式).ppt
C语言课件(运算符和表达式).ppt 运算符与表达式第二讲 运算符和表达式,引例 概念及分类 优先级和结合性 算术运算 关系运算 逻辑运算 位运算 赋值运算符 逗号运算符 条件运算符,引例,引例 问题 ...
最新文章
- Oracle常用语句记录
- 编程之美-中国象棋将帅问题方法整理
- C语言去括号编程题,数据结构课件.ppt
- c语言realloc函数中写啥,求大神解惑realloc函数,谢谢!
- 学习笔记(54):Python实战编程-Scale
- 使用Junit测试名称
- python excelwriter保存路径_Python和Excel 终于可以互通了!!
- (26)FPGA面试题7分频器
- DCMTK3.6.0 安装失败的说明
- android os自动联网,联网设置指南
- Oracle建立用户和表空间
- mysql的inndob引擎崩溃
- 前端五个拿来就能用的炫酷动画登录页面
- 2021年信息安全工程师真题与答案
- 最近发现谷歌浏览器打开网页速度很慢,比IE都慢
- 【深度学习 论文篇 01-1 】AlexNet论文翻译
- Captura – 带键盘按键录制的录屏工具,支持直播[Windows]
- 当ie浏览器无法上网时
- python指定时间倒计时软件_python倒计时
- 车联网大数据框架_车联网大数据:发展、支撑与应用