内容正文:
第4章 C语言基本语法
2024年8月11日
内容概述
C语言基本数据类型
整型、实型、字符型的常量形式及变量定义
整型、实型、字符型变量的格式化输入输出
C语言的类型转换
运算符及表达式
2024年8月11日
教学目标
掌握数据类型的概念,了解C语言能够处理的数据类型。
掌握各种类型常量的特点及表示形式。
掌握各种类型变量的定义及使用
掌握数据的输入输出的基本方法。
掌握C语言的运算符、表达式及运用方法。
2024年8月11日
4.7 运算符与表达式
在第二章中,我们已经介绍了:
算术运算符:+、-、*、/、%;
关系运算符:>、<、==、>=、<=、!=;
逻辑运算符: !、 &&、 ||。
C语言中常用的运算符还有自增自减运算符、条件运算符、逗号运算符等。
2024年8月11日
1自增、自减运算符及其表达式
1 形式
++i, --i 使用i之前,先使i的值加/减1
i++, i-- 使用i之后,再使i的值加/减1
2 说明
++i和--i的值是加/减1之后i的值
i++和i--的值是加/减1之前i的值
++和--只能用于变量,不能用于常量和表达式
++和--的结合方向是“自右向左”
2024年8月11日
(1) 单独使用时
++i;
等 价
i++;
等 价
i=i+1;
(2) j=++i;
(3) j=i++;
若i的初始值为3
i=4;
j=4;
i=4;
j=3;
2024年8月11日
#include <stdio.h>
#include <stdio.h>
void main()
{
int i;
i=8;
printf("%5d",++i);
printf("%5d ",--i);
printf("%5d ",i++);
printf("%5d",i--);
printf("%5d",-i++); printf("%5d
",-i--);
}
【例4.9】运行以下程序并分析程序运行结果。
2024年8月11日
++、--运算符应用于逻辑表达式“a&&b&&c”和“a||b||c”时需格外注意
例如:若 a=0; b=1; c=2;
执行 d=a++&&b++&&- -c;之,a,b,c,d的值各是什么?
分析:因变量a先参加表达式的运算,后自增,所以参加表达式运算的值是0,所以整个表达式的值是0,即d=0,a自增变为1,b++和—c没有得到执行,所以b=1,c=2。即运算结果: d=0,a=1,b=1,c=2
2024年8月11日
若 a=0; b=1; c=2;
执行 d=a++||b++||- -c; 后a,b,c,d的值各是什么?
分析:因变量a先参加表达式的运算,后自增,所以第一个||前的表达式值为0(假),需要运算第二个表达式即b++,由于b=1,所以整个表达式的值为1,即d=1,b自增后变为2,第三个表达式—c没有得到执行,所以c=2。即运算结果: d=1,a=1,b=2,c=2。
2024年8月11日
1.条件运算符
条件运算符由问号“?”和比例号“:”组成,用于连接三个运算对象,是C语言中唯一的一个三目运算符。
2.条件表达式
一般形式: <表达式1> ? <表达式2>:<表达式3>
求值规则和表达式的值:
求解
表达式1
真(非0)
求解
表达式2
假(0)
求解
表达式3
表达式
的值
2 条件运算符与条件表达式
2024年8月11日
优先级:逻辑 > 条件 > 赋值
结合性:自右至左
若有定义a=2、b=3、c=4,求下列表达式的值。
(1)m=a>b?a:b
(2)m=a>b?a:b>c?b:c
(1)式的求解过程:先计算a>b值,因为a>b的结果为假,所以把b的值作为整个表达式的值,即为3。
(2)式的求解过程:先计算b>c?b:c,结果为4,再计算m=a>b?a:4,结果为4,则m的值为4,整个表达式的值也为4。
2024年8月11日
3. 逗号运算符和逗号表达式
逗号运算符
C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是将若干个表达式连接起来。
逗号表达式
用逗号运算符将各种类型的表达式连接起来的式子称为逗号表达式。
一般形式:
表达式1,表达式2,…,表达式n
其求值过程是分别求表达式1、表达式2、…、表达式n值,并以表达式n的值作为整个逗号表达式的值。
逗号运算符是所有运算符中级别最低的。
2024年8月11日
例如
a=4*6,a+5
整个逗号表达式的值为29。
注意
一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式。
例如:
(a=4*6,a+5),a+6
整个表达式的值为30。
2024年8月11日
如: int x,y=7; float z=4;
表达式x=(y=y+6,y/z); 的值是多少
整个表达式的值为3。先计算逗号表达式中第一个表达式的值即y=y+6,得到y=13,接着计算逗号表达式中第二个表达式的值y/z,得到3.25,这也是整个逗号表达式的值,3.25赋值给整型变量x时会自动进行类型转换,即整数3赋值给变量x。
2024年8月11日
3 .复合赋值运算符
*=、/=、%=、+=、-=、<<=、>>=、&=、Λ=、¦=
复合运算符是一个运算符,但功能上,是两个运算符功能的组合。
如:a+=b 相当于 a=a+b
a*=b+c 相当于 a=a*(b+c)
a=2; a+=a*=a;
最好不要这样用!!
4.复合赋值表达式
4.复合赋值运算符及表达式
2024年8月11日
5.运算符优先级
优先级顺序 运算符
1 括号,如()和[ ]
2 一元运算符,如++、--和!
3 算术运算符,如*、/、%、+和-
4 关系运算符,如>、<、>=、<=、==、!=
5 逻辑运算符,如&、^、|、&&、||
6 条件运算符和赋值运算符,如?、:、=、+=、-=、*=和/=
$$