轻松学C语言之程序的基本单位-语句.pptx
第3章程序的基本单位语句C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。所以程序的基本单位是语句。要想开发C程序,我们要先学习C语言程序的语句。在C语句中,我们会用到有关运算符的计算结果以及语句块的作用域,本章将详细介绍这些内容。3.1语句的构成C语言中,语句是由表达式加上”;”构成的。基本语句有控制语句、表达式语句、空语句、复合语句、函数调用语句。这里我们主要讲表达式语句,其它语句在以后用到我们再讲。C语句的构成如图3.1所示。3.1语句的构成3.1语句的构成3.2运算符C语句中的表达式是由数据以及运算符所组成的。数据我们在第2章已经详细介绍过了,本节中我们将介绍赋值运算符。在众多的运算符中,最基本的就是赋值运算符。赋值运算符可以把表达式的运行结果赋值给一个变量,从而根据输出的这个变量的值得到表达式的结果。赋值运算C语言中,赋值运算分为程序中指定赋值和人工输入赋值运算。它的作用是将一个表达式的值赋给一个左值。1.程序中指定赋值运算程序中指定赋值主要通过赋值运算符来实现,其基本形式如图3.4所示。1.程序中指定赋值运算2.人工输入赋值运算人工输入赋值是指在程序运行中,由用户手动输入需要处理的数据。C语言中,使用的是库标准函数scanf()来进行的。scanf()函数在接收数据时,是通过空格来区分数据项的。scanf()函数的一般形式如图3.6所示。2.人工输入赋值运算格式意义%d输入十进制整数%o输入八进制整数%x输入十六进制整数%u输入无符号十进制整数%f或%e输入实型数(f%用小数形式,e%指数形式)%c输入单个字符%s输入字符串2.人工输入赋值运算3.特殊的赋值变量初始化变量声明是确认该标识符已被系统使用,定义是为变量所代表的值分配内存。初始化时是指定该内存保存的值。如果没有对变量进行初始化,该变量的值是不确定的。由此可见,对变量初始化是相当有必要的,C语言中,变量的声明和定义是放在一起进行的。变量初始化的形式如图3.9所示。3.特殊的赋值变量初始化数据类型的转换当赋值运算符右边的数据类型和左边的数据类型不一样时,就会出现数据类型转换。数据类型转换可以分为隐式转换和显示转换。1.隐式转换在C程序中,隐式转换就是系统默认的,不需要加以声明就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。下面是隐式转换的常见的几种情况,如图3.12所示。1.隐式转换1.隐式转换2.显示转换显示转换也就是强制类型转换。如果系统的隐式转换不是我们所想要的结果,那么我们可以通过强制类型转换将一个表达式的数据类型转换成我们所需的数据类型。显示转换形式如图3.15所示。3.3常用的其它运算符C语言中,我们常用的运算符除了赋值运算符还有算术运算符、位运算符、复合运算符以及自增、自减运算符等,下面将讲解这几类运算符的使用。位运算符位运算符是计算机语言的集中运算。包括按位与、按位或、按位非、按位异或等等,它用来对二进制数的值进行各种处理。C语言提供的位运算符如表3-2所示。位运算符位运算符含义含义结合性结合性&按位与自左向右自左向右|按位或自左向右自左向右按位异或自左向右自左向右按位取反自右向左自右向左右移右移自左向右自左向右位运算符位运算符位运算符符号名称作用意义说明左移位将操作数的二进制位整体按照顺序向左移,右端空出的位补0,左端移出最高位以外的位丢失a右移位将操作数的二进制位整体按照顺序向右移,左端补0或补1,右端移出超出最低位被丢失an,代表a的二进制位顺序右移n位(n为整数)右移运算与操作数的符号有关.就VC+6.0而言:无符号数为“逻辑右移”,即左端空出位一律补0;有符号数为“算术右移”,即正数右移,空位补0,负数右移,空位补1位运算符算术运算符算术运算符包括加、减、乘、除运算符(+、-、*、/)和求模取余运算符(%)。算术运算符是双目运算符,其操作数一般是整数和浮点数(或者是结果为整数或浮点数的表达式)。C语言中的算术运算符符号、名称、功能及其相关示例,如表3-4所示。其中,已知a=10,b=4。运算符运算符名称功能示例结合性结果+加法运算符表示两个数相加a+b自左向右14-减法运算符表示两个数相减a-b自左向右6*乘法运算符表示两个数相乘a*b自左向右40/除法运算符表示两个数相除a/b自左向右2.5%模运算符表示取模a%b自左向右2算术运算符算术运算符5/-3=-1-5/-3=15%-3=-2-5%-3=23.3.3自增、自减运算符自增、自减运算符“+”和“-”也可包含在算术运算符的范畴中。它们的表示形式和实现功能如图3.23所示。3.3.3自增、自减运算符逗号运算符C语言中逗号,也是一种运算符,称为逗号运算符。逗号运算符虽然在C语言中不怎么常用,但是希望大家能够了解逗号运算符的规则。逗号运算符的一般形式如图3.26所示。逗号运算符复合赋值运算符在赋值运算符中有一类是很重要的运算符就是复合赋值运算符,它其实是一种缩写形式,使得对变量的改变更加简洁。复合赋值运算符的种类以及功能如表3-5所示。符号符号使用方法使用方法等效形式等效形式功能功能+=a+=ba=a+b加法赋值加法赋值-=a-=ba=a-b减法赋值减法赋值*=a*=ba=a*b乘法赋值乘法赋值/=a/=ba=a/b除法赋值除法赋值%=a%=ba=a%b取余赋值取余赋值=a=ba=a=a=ba=ab右移赋值右移赋值&=a&=ba=a&b逻辑与赋值逻辑与赋值|=a|=ba=a|b逻辑或赋值逻辑或赋值=a=ba=ab逻辑异或赋值逻辑异或赋值sizeof运算符sizeof运算符是用来计算字节数的。由于不同的计算机支持的数据类型长度是不一样的,因此需要一个运算符来测量该机器中的数据类型长度。C中提供了sizeof运算符,其作用和使用格式如图3.31所示。3.3.7分隔符分割符用来区分或定界C语言中不同的数据对象。分隔符用于广泛的语句中,它分为单分隔符和组合分隔符。单分隔符是指除字母、下划线、数字以外的单个ASCII字符。用“,”隔离 char a,b;用“#”做预处理伪指令#indenf N 10用“*”做指针 int*p3.3.7分隔符用“+=”表示赋值 a+=b;用“=”表示关系 if(a.*,-*改变优先级作用域运算符数组下标成员选择成员指针选择从左至右从左至右2+,-&*!+,-()sizeofnew,delete增1,减1运算符取地址取内容逻辑求反按位求反取正数,取负数强制类型取所占内存字节数动态存储分配从右至左从右至左3*,/,%乘法,除法,取余从左至右从左至右4+,-加法,减法从左至右从左至右5左移位,右移位从左至右从左至右6,=小于,小于等于大于,大于等于从左至右从左至右7=,!=相等,不等于从左至右从左至右8&按位与从左至右从左至右9按位异或从左至右从左至右10|按位或从左至右从左至右11&逻辑与从左至右从左至右12|逻辑或从左至右从左至右13?:三目运算符从右向左从右向左14=,+=,=,*=,/=,%=,&=,=,|=,=赋值运算符从右至左从右至左15,逗号运算符逗号运算符从左至右从左至右3.4语句块在程序开发中,我们常常会把多条语句放在“”中执行,这些多条语句就组成了复合语句。复合语句加上所在的“”也就构成了语句块。语句块的构成在C程序中,多个连续的语句组成语句块(复合语句)。语句块一般以一对大括号“”为标志。如图3.33所示为一个main()函数内的语句块。语句块的构成作用域在C语言源文件中,变量的作用域是指变量的有效范围。根据变量是在一对“”之中还是在程序的所有的“”之外来确定变量的作用域。在源程序中,变量的作用域一般有两种情况,如图3.35所示。作用域作用域3.5小结本章主要讲解C程序语句中经常用到的运算符、语句块的构成以及源文件中变量的作用域。在这里重点是掌握运算符的使用以及优先级判断,还有变量的作用域范围。