第一讲 C语言表达式
C语言从入门到精通(吐血分享)

六大表达式一、算术表达式(数学表达式)(1)运算符:数学:{} [] () + - * / + -C:()、+/-、* / %、+/-正负(2)单目、双目运算符单目:一个操作数 +5 -9双目:两个操作数 5+6 7*8(3)%:<1>双目运算符<2>操作数:两个数都是整型资料1%2<3>奇数: x%2!=0偶数: x%2==0整除: %(4)在算术运算中,如果运算符两端的类型都是整型数据,那么结果是整型资料1/2 0 5/3 1 8/9 0 9/8 1在算术运算中,如果运算符两端的类型不一致,向空间大的一方转化. 1/2.0 1.0/2.0 0.5 1.0/5 1.0/5.0 0.22 4(5)优先级:(6)结合性:(7)使用多层括号,一律使用小括号(8)强制性类型转化格式:(类型名)表达式注:1)类型名括号不能省2)不存在四舍五入2.赋值表达式(1)格式变量名=表达式(2)变数的实质:存储单元(3) =:赋值号==:等号优先级:只比逗号高结合性:自右向左(4)表达式:常量、变数、六大表达式(5)在赋值表达式中,赋值号的左端只能为变量名5+8=a b=a(6) int x=2,y=3;x=y:将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中x=x+1:将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中x=x:左x: 代表x所标识的单元右x:将变量x所代表的单元中的值取出来单元=值(7)变量中的值在不断进行更新x=2x=3x=99(8)复合赋值表达式(算术和赋值) 1)运算符:*= /= %= += -=2)优先级:与”=“同级3)结合性:自右向左4)复合赋值有隐含小括号功能3.关系表达式(1)逻辑值平时 C 5678 -2真非0 1假 0 0(2)运算符> >= < <= == != (3)优先级> >= < <= == != (4)结合性自左向右(5)结果:逻辑值5<6 7>94.逻辑表达式(1)运算符!:(非补集)&&:(与交集)||:(或者并集)(2)!:单目运算&& ||:双目(3)优先级高到低:! && ||(4)结合性!:自右向左&& ||:自左向右(5)使用!0 1 !非0 0非0&&非0 1 1||1 1非0&&0 0 1||0 10&&非0 0 0||1 10&&0 0 0||0 0(6)结果:逻辑值(1,0)(7)数学表示方式|x|<=9 -9<=x<=9 x>=-9&&x<=9|x|>=9 x>=9或x<=-9 x>=9||x<=-9(8)断路问题<1> 在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真5.条件表达式格式:表达式1?表达式2:表达式3(1)三目运算(2)运算过程:表达式1为真,执行表达式2表达式1为假,执行表达式36.逗号表达式(1)格式:表达式1,表达式2,表达式3,表达式4,……,表达式n (2)优先级:所有运算符中优先级最低(3)结合性:自左向右int a=8;a+=3,a=5,a+3; ?a 表达式的值?附:<1>++ 、--1>功能++:+1 自动赋值--: -1 自动赋值2>单目运算3>操作数可以放在运算符的右边也可以放在运算符的左边 i++ ++i i-- --i4>操作数可以为整型、实型的变量 2++ 2=2+1 错i++ i=i+1 ++i i=i+1i-- i=i-1 --i i=i-15>表达式值和变数值int i;表达式值变数值i=5 i++ 5 6i=5 ++i 6 6i=5 i-- 5 4i=5 --i 4 4只要给出式子的整体(i++,--i)则使用的是表达式的值;如果给出变量名,使用的是变量值int i=5;j=40/i++; j=40/6 66>-i++:-(i++) j=-i++; j=-5 i=6<2>所有运算符的优先级(六个表达式)高=》低() ++/-- !算术表达式关系表达式逻辑表达式条件表达式赋值表达式逗号表达式。
c语言表达式运算

c语言表达式运算1.引言1.1 概述概述部分旨在介绍C语言表达式运算的基本概念和重要性。
在C语言中,表达式运算是程序中最基本、最常用的操作之一。
通过对表达式的运算,程序能够实现各种功能和逻辑判断。
C语言的表达式由操作数和运算符组成,通过特定的运算符以及它们的优先级和结合性,可以实现算术运算、逻辑运算、位运算和条件运算等各种类型的运算。
C语言表达式运算的结果是一个值,这个值可以被赋给变量,或者用于控制程序的流程。
表达式运算在编程中起着举足轻重的作用。
它可以用于简单的数值计算,例如加减乘除等算术运算。
同时,表达式运算也是实现复杂逻辑判断的基础,例如比较运算、逻辑运算和条件运算。
C语言的表达式运算还可以用于位运算,对二进制数值的位进行操作,实现各种位操作的需求。
了解和掌握表达式运算在C语言中的特性和规则,对于进行程序设计和算法实现至关重要。
在编写高效、可靠且易于理解的代码时,正确使用表达式运算符,合理选择表达式的结构和运算次序,都是必不可少的。
同时,对于程序调试和错误排除也有着重要的作用,通过对表达式运算过程的观察和分析,可以帮助我们找出代码中隐藏的错误和逻辑漏洞。
总之,C语言的表达式运算是程序设计中的重要组成部分,它涵盖了各种运算类型,能够帮助我们实现各种功能和逻辑判断。
深入理解和掌握表达式运算的特性和规则,对于编写高质量的代码和实现优化的算法来说是至关重要的。
在接下来的部分中,我们将详细介绍表达式的基本概念和运算符,并通过实例来展示其在实际编程中的应用。
1.2文章结构文章结构部分的内容应该包括对于整篇文章的组织和布局的介绍。
下面是一个可能的写作内容示例:在本文中,我们将按照以下结构来进行讨论和分析C语言表达式的运算。
文章主要包含三个部分:引言、正文和结论。
在引言部分,我们将对本文要探讨的主题进行概述,简要介绍C语言表达式运算的背景和基本概念,并明确文章的目的。
通过引言,读者可以对本文的主题和目标有一个初步的了解。
C语言详解-表达式和语句

C语⾔详解-表达式和语句1. 什么是表达式?C语⾔中的表达式⼀种有值的语法结构,它由运算符将变量、常量、函数调⽤返回值结合⽽成。
1.1 变量变量名本⾝是⼀个表达式,表达式的值是变量当前的值。
复杂的表达式由[], ->, ., 和单⽬运算符*构成。
1.2 常量常量名本⾝是⼀个表达式,字⾯常量也是表达式。
对于这两者,表达式的值是常量当前的值。
1.3 函数调⽤对于返回值不为void的函数,对它的正确调⽤也是表达式。
表达式的值为函数的返回值。
1.4 操作符运算符⽤于连接表达式中的值。
以下是C语⾔中的运算符,运算符的优先级,及运算符的结合顺序OrderCategory Operator Operation Associativity1Highest precedence( )[ ]→: :.Function call L → RLeft to Right2Unary!~+-++- -&*Size of Logical negation (NOT)Bitwise 1’s complementUnary plusUnary minusPre or post incrementPre or post decrementAddressIndirectionSize of operant in bytesR → LRight -> Left3Member Access.*→*DereferenceDereferenceL → R4Multiplication*/%MultiplyDivideModulusL → R5Additive+-Binary PlusBinary MinusL → R6Shift<<>>Shift LeftShift RightL → R7Relational<<=>>=Less thanLess than or equal toGreater thanGreater than or equal toL → R8Equality==!=Equal toNot Equal toL → R9Bitwise AAND&Bitwise AND L → R 10Bitwise XOR^Bitwise XOR L → R 11Bitwise OR|Bitwise OR L → R 12Logical AND&&Logical AND L → R 14Conditional? :Ternary Operator R → L15Assignment=*=%=/=+=-=&=^=|=<<=>>=AssignmentAssign productAssign reminderAssign quotientAssign sumAssign differenceAssign bitwise ANDAssign bitwise XORAssign bitwise ORAssign left shiftAssign right shiftR → L>>=Assign right shift16Comma,Evaluate L → R1.5 实例/* 变量常量表达式 */asum10.5PI/* 算术表达式 */a + ba -b + ca *b + 'A'a /b -c + 10i++ + i++ + ++i/* 赋值表达式 */a = ba *=b += 20a =b =c = 10a = (b=4) / (c=2)/* 逗号表达式 */1+2, 3+4(10, a*5), a+10/* 关系表达式 */x == yx <= yx != y/* 逻辑表达式 */10 && 200 || 1(a>b) && (!0)/* 复合表达式 */x = ( y = (a + b), z=10)/* 表达式的应⽤ */if( !100 ) //!100为逻辑表达式printf("expression show!");for(int i=10; i<10; i++)//for包含3个表达式,分别为i=10 i<10 i++printf("expression show!");while( 1 ) //1也是⼀个表达式{printf("death loop!");}2. 语句语句指的是当程序运⾏时执⾏某个动作的语法结构。
C语言中常见的表达式

C语言中常见的表达式在C语言中,表达式是程序中的一部分,用于计算值并执行某些操作。
表达式由运算符、操作数和操作符组成。
在本文中,我们将介绍C语言中常见的表达式。
一、算术表达式算术表达式用于执行数学运算。
在C语言中,常见的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)。
这些运算符用于进行加、减、乘、除和取余的操作。
下面是一些例子:1. 加法表达式int a = 5;int b = 3;int c = a + b; // c的值为82. 减法表达式int a = 5;int b = 3;int c = a - b; // c的值为23. 乘法表达式int a = 5;int b = 3;int c = a * b; // c的值为154. 除法表达式int a = 5;int b = 3;int c = a / b; // c的值为1,因为整数相除结果为整数5. 求余表达式int a = 5;int b = 3;int c = a % b; // c的值为2,因为5除以3余2二、关系表达式关系表达式用于比较两个值的关系,返回一个布尔值(true或false)。
常见的关系运算符包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。
下面是一些例子:1. 等于关系表达式int a = 5;int b = 3;bool result = (a == b); // result的值为false,因为a不等于b2. 不等于关系表达式int a = 5;int b = 3;bool result = (a != b); // result的值为true,因为a不等于b 3. 大于关系表达式int a = 5;int b = 3;bool result = (a > b); // result的值为true,因为a大于b4. 小于关系表达式int a = 5;int b = 3;bool result = (a < b); // result的值为false,因为a小于b5. 大于等于关系表达式int a = 5;int b = 3;bool result = (a >= b); // result的值为true,因为a大于等于b 6. 小于等于关系表达式int a = 5;int b = 3;bool result = (a <= b); // result的值为false,因为a小于等于b三、逻辑表达式逻辑表达式用于组合和比较多个关系表达式,返回一个布尔值(true或false)。
C语言中的运算符和表达式

C语言中的运算符和表达式C语言是一种常用于系统编程和应用程序开发的程序设计语言,掌握C语言的运算符和表达式是学习C语言编程的基础之一。
在本文中,我们将深入探讨C语言中的运算符和表达式。
1. 算术运算符在C语言中,算术运算符用于执行基本的算术运算。
常见的算术运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和取余运算符(%)。
这些运算符可用于对整数和浮点数执行常见的算术操作。
2. 关系运算符关系运算符用于比较两个值之间的关系。
常见的关系运算符包括等于运算符(==)、不等于运算符(!=)、大于运算符(>)、小于运算符(<)、大于等于运算符(>=)和小于等于运算符(<=)。
关系运算符通常用于条件语句和循环结构中,帮助程序根据比较结果做出相应的决策。
3. 逻辑运算符逻辑运算符用于对布尔表达式进行操作。
常见的逻辑运算符包括逻辑与运算符(&&)、逻辑或运算符(||)和逻辑非运算符(!)。
逻辑运算符常用于控制语句中,帮助程序根据多个条件判断结果做出适当的响应。
4. 位运算符位运算符用于对二进制数的位进行操作。
常见的位运算符包括按位与运算符(&)、按位或运算符(|)、按位异或运算符(^)和按位取反运算符(~)。
位运算符通常与位运算结合使用,用于处理二进制数据和位掩码。
5. 赋值运算符赋值运算符用于将一个值赋给变量。
常见的赋值运算符为等号(=),可以将右侧的表达式的值赋给左侧的变量。
此外,C语言还提供了一些复合赋值运算符,如加等(+=)、减等(-=)、乘等(*=)和除等(/=),用于简化赋值表达式的编写。
6. 运算符优先级在C语言中,不同的运算符具有不同的优先级。
了解运算符的优先级可以帮助我们正确地理解和编写表达式。
在复杂的表达式中,可以使用括号来改变运算符的优先级,以确保表达式的计算顺序符合我们的预期。
7. 表达式求值在C语言中,运算符和操作数组合形成表达式。
C语言中的表达式及其知识要点

C语言中的表达式及其知识要点绍兴文理学院沈红卫C语言中数据类型、运算符等语法点最终归一到表达式(expression)。
表达式是C语言的重点和难点。
何为表达式?表达式就是,由运算符、变量和常量组成的具有一个确定结果(值)的一个式子。
由于C语言中运算符的广泛性和广义性,所以,C语言中的表达式也是广义的一个概念,与数学中的表达式既有相同之处,又有许多不同的地方。
例如:y=x=3,这是一个赋值表达式;x+3,y*5,这也是一个表达式,是逗号表达式,因为“,”(逗号)在C里也是一个运算符。
这些是数学所没有的。
说它是重点,是因为几乎所有语句都会涉及到表达式;说它是难点,是因为表达式的广义性,以及求解表达式的复杂性。
为了学好表达式,首先必须掌握C语言中的表达式的种类。
C语言表达式的种类较多,主要有以下类型:算术表达式:大家最熟悉的,例如:x+5*y,算术运算的表达式关系表达式:x>=5,x<6,x==8,大小关系判断的表达式逻辑表达式:ans==’y’ || ans==’Y’,与、或、非三种逻辑运算的表达式赋值表达式:x=6+y,进行变量赋值的表达式条件表达式:x>y?1:0,如果x>y则取1,否则取0逗号表达式:x+3,y*5,z-3,有逗号运算符组成的表达式表达式结果求解是必须掌握的内容。
求解一个表达式,必须使用三条规则:一是混合运算规则;二是优先级规则;三是结合性规则。
混合运算规则:当表达式涉及到不同的数据类型时,必须使用该规则,以确定表达式的结果的类型。
该规则即教材P35中的“表达式中的自动类型转换规则”。
优先级规则:表达式涉及到多种运算符、优先级又各不相同时,必须使用该规则,就好像数学中的“先乘除后加减”。
每种运算符的优先级参见教材P434“附录C”。
例如:假设x=3,则算术表达式x+x*5,先乘后加,结果等于18。
再如:假设x=3,则逻辑表达式x>5&& x<10,先关系运算再逻辑运算,相当于是表达式:(x>5)&& (x<10),因此,该表达式的值等于0。
C语言基本数据类型与表达式-1
C语言基本数据类型与表达式-11、C语言的语法基础*C语言字符集C语言的基本符号可分为4类:(1)英文字母:大小写各26个,共计52个;(2)阿拉伯数字:0——9共十个数字;(3)下划线:- ;(4)特殊符号:通常由1-2个符号组成,主要用来表示运算符;*算术运算符:+ - * / % ++ --*关系运算符:<>>= <= == !=*逻辑运算符:&& || !*位运算符:& | ~ ^ >><<*条件运算符:? :*赋值运算符:=*其他分隔符:() [] {} . , ;2、标识符*概念:用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列;(1):标识符只能由字母、数字和下划线三种符号组成,且第一个字符必须为字母或下划线;(2):大小写字母敏感;(3):用户自定义的标识符不能与关键字同名;3、关键字(后续接触理解)*概念:就是对编译器具有特定含义的标识符,用户不能用来作自定义标识符;4、C语言的数据类型*数据类型:基本类型;构造类型;指针类型(*);空类型(void)基本类型:字符型(char);数值类型;枚举类型(enum)数值类型:整型(short、int、long、unsigned);实型(单精度:float;双精度:double)构造类型:数组类型([]);结构体类型(struct);共用体类型(union);5、常量和变量*常量概念:在程序运行中,其数值不能被改变的量;分类:直接常量(程序中直接引用的数据,以数据原型出现;分为整型、实型、字符型、字符串)和符号常量;(1)整型:三种表现形式{十进制;八进制(在数码前加数字0);十六进制(在数码前加0x,x大小写均可)}注意事项:八进制的数码范围为0-7;十六进制的数码范围除了数字0-9外,还使用英文字母a-f 分别表示10-15;(2)实型:两种表现形式{十进制形式(由数字和小数点组成);由指数形式(由“十进制小数”+“e 或E”+“十进制数整数”三部分组成)}注意事项:小数点不能单独出现;e或E的两边必须有数,且其后面必须为整数;(3)字符型:两种表现形式{用单引号括起来的一个字符(只能是英文的单引号);用单引号括起来的由反斜杠(\)引导的转义字符(在统计字符个数时,只能记为一个字符)}一个字符的多种表示方法:65D(十进制)=41H(十六进制)=101Q(八进制),字符A可以表示为…A‟、…\X41‟、65、0x41、0101;要避免的错误:表示单引号(' ' ')、表示双引号(' " ')、表示斜杠(' \ ')字符的值域:即字符的取值范围(ASCII字符表中的所有字符,每个字符型数据在内存中占一个字节,包括可显示字符和非显示字符)符号常量概念:是用标识符来表示一个数据;特点:在程序中不能给它赋值;定义形式:#define 标识符常量数据;在程序预处理时,凡是出现标识符PI的地方都将用3.14159来替代;*变量概念:变量是指在程序运行中,其值可以被改变的量;变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值;在同一程序块中,每个变量都有唯一的名字,不能被重复定义;使用变量时必须“先定义,后使用”;(1)定义形式:类型标识符变量名1 [,变量名2,变量名3,……];例如:int a,b,c; (行末“;”不能省略)(2)整型变量:基本型(int表示)、短整型(short int或short表示)、长整型(long int或long 表示)、无符号型(其中无符号型又分为无符号整型unsigned int,无符号短整型unsigned short和无符号长整型unsigned long表示)(3)实型变量:单精度(float)型——4字节,双精度(double)型——8字节(4)字符变量:字符变量用来存放字符常量,注意一个字符变量只能存放一个字符;一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。
C语言运算符与表达式教案学习C语言中的运算符和表达式的使用方法
C语言运算符与表达式教案学习C语言中的运算符和表达式的使用方法教案:C语言运算符与表达式一、概述C语言中,运算符是一种用于在表达式中进行操作的符号,而表达式则是由运算符、操作数和其他语言元素组成的式子。
掌握C语言中的运算符和表达式的使用方法对于编写高效的代码至关重要。
本教案将详细介绍C语言中常见的运算符和表达式,以帮助学习者深入理解并掌握其使用方法。
二、算术运算符算术运算符用于执行基本的算术运算,包括加法、减法、乘法、除法等操作。
常见的算术运算符如下:1. 加法运算符(+):用于两个操作数相加,如a + b。
2. 减法运算符(-):用于两个操作数相减,如a - b。
3. 乘法运算符(*):用于两个操作数相乘,如a * b。
4. 除法运算符(/):用于两个操作数相除,如a / b。
三、赋值运算符赋值运算符用于将右边的值赋给左边的操作数。
常见的赋值运算符如下:1. 简单赋值运算符(=):用于将右边的值赋给左边的操作数,如a = b。
2. 复合赋值运算符:包括加法赋值运算符(+=)、减法赋值运算符(-=)、乘法赋值运算符(*=)和除法赋值运算符(/=),可以简化赋值操作,如a += b。
四、比较运算符比较运算符用于比较两个操作数的关系,返回布尔值(true或false)。
常见的比较运算符如下:1. 相等运算符(==):用于判断两个操作数是否相等,如a == b。
2. 不等运算符(!=):用于判断两个操作数是否不等,如a != b。
3. 大于运算符(>):用于判断左边的操作数是否大于右边的操作数,如a > b。
4. 小于运算符(<):用于判断左边的操作数是否小于右边的操作数,如a < b。
五、逻辑运算符逻辑运算符用于组合多个条件,并返回布尔值(true或false)。
常见的逻辑运算符如下:1. 逻辑与运算符(&&):用于判断多个条件是否同时满足,如a >b && a > c。
C语言运算符与表达式
C语言运算符与表达式C语言是一种广泛使用的编程语言,它提供了丰富的运算符与表达式,用于进行各种数值计算和逻辑操作。
本文将介绍C语言中常用的运算符与表达式,以帮助你更好地掌握这门编程语言。
一、算术运算符C语言中的算术运算符包括加法运算符+、减法运算符-、乘法运算符*、除法运算符/和求余运算符%。
这些运算符可用于进行基本的数学运算。
例如:int a = 10;int b = 4;int sum = a + b; // 加法运算int difference = a - b; // 减法运算int product = a * b; // 乘法运算int quotient = a / b; // 除法运算int remainder = a % b; // 求余运算二、关系运算符C语言中的关系运算符用于比较两个值的大小关系,并返回一个布尔值(true或false)。
常用的关系运算符包括大于>、小于<、等于==、不等于!=、大于等于>=和小于等于<=。
例如:int a = 10;int b = 4;bool isGreater = a > b; // 大于运算bool isLess = a < b; // 小于运算bool isEqual = a == b; // 等于运算bool isNotEqual = a != b; // 不等于运算bool isGreaterOrEqual = a >= b; // 大于等于运算bool isLessOrEqual = a <= b; // 小于等于运算三、逻辑运算符逻辑运算符用于连接多个条件,并返回一个布尔值。
常用的逻辑运算符包括与运算符&&、或运算符||和非运算符!。
例如:int a = 10;int b = 4;int c = 6;bool result1 = a > b && b > c; // 与运算bool result2 = a > b || b > c; // 或运算bool result3 = !(a > b); // 非运算四、位运算符位运算符用于操作二进制数据中的位级别的操作。
C语言详解表达式和语句
C语言详解表达式和语句C语言是一种广泛应用于系统开发和嵌入式设备编程的编程语言。
在理解和掌握C语言的基础知识中,对于表达式和语句的深入了解是至关重要的。
本文将详细讨论C语言中表达式和语句的概念、特性以及使用方法,帮助读者全面掌握这两个重要的概念。
一、表达式的概念与特性表达式是C语言中的一个基本概念,其由操作数和运算符组成。
操作数可以是常量、变量以及其他表达式,运算符用于对操作数进行运算操作。
在C语言中,表达式可以分为以下几种类型:1. 算术表达式:由数字常量、变量以及算术运算符(如+、-、*、/)组成。
例如,表达式a + b就是一个简单的算术表达式。
2. 关系表达式:用于比较相等或不相等的两个值,结果为真(非零)或假(零)。
关系表达式使用关系运算符(如==、!=、<、>、<=、>=)。
例如,表达式a > b就是一个关系表达式。
3. 逻辑表达式:用于逻辑判断,其结果为真或假。
逻辑表达式由逻辑运算符(如&&、||、!)连接。
例如,表达式a && b就是一个逻辑表达式。
4. 条件表达式:又称三元运算符,由三部分组成,用于在满足条件时返回一个值,否则返回另一个值。
条件表达式的形式为 condition ? expr1 : expr2。
例如,表达式(a > b) ? a : b就是一个条件表达式。
表达式在C语言中的使用非常广泛,可以用于求值、赋值、函数调用等多种场景。
在编写C语言程序时,我们需要熟练掌握不同类型表达式的语法和使用方法,以便能够正确和高效地使用它们。
二、语句的概念与分类语句是C语言中的另一个重要概念,其被用于组织和控制程序的执行流程。
C语言提供了多种类型的语句,我们现在来依次介绍其中一些常见的语句类型。
1. 赋值语句:用于给变量赋予新的值,其语法形式为variable = expression。
例如,a = 10就是一个赋值语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符型(char) 枚举型(enum) 数组类型([]) 结构体类型(struct) 共用体类型(union)
– 复杂(构造)的数据类型
– 指针类型 (*) – 空类型(这个我们接触过:void)
• •
其中
– 我们在前面的课程中已经接触过了:int 、float、double、void – 在开始的阶段,我们主要要掌握的是int、float、double、char
– &
– 输出:
• printlf • 格式串定义同上。
• 后面我们会有一个专题,来讲解C语言的输入和输 出。
复习回顾——关于float和double
• 关于float和double
– 都是表示数学中的小数;
• float 单精度的浮点型,精确到小数点后7位,最大范 10 围1038 • double双精度的浮点型,精确到小数点后14位,最 大范围10308
下面一个个来讲解上面这4个简单的数据类型。
C语言的数据类型——整型
• 整型数据类型用来表示数学中的整数。 • 具体到C语言的整型常量:
– 10 简单的整型的常量,表示十进制; – 076 有前缀0,表示为八进制的整型常量; – 0X3EF,或者0x3ef,有前缀(0X或者0x,大小写均可), 表示为十六进制的整型常量; – 除了前缀,提问:是不是也有后缀呢?
C语言的数据类型——整型
• 回到前面的提问
– C语言的整形类型有前缀:0,0X(0x),是不是有后缀 呢? – 有! – 10 int类型,十进制数字; – 037 int类型,八进制数字; – 0X3EF (0x3ef)int类型,十六进制数字; – 10u unsigned [int]类型, – 10l long [int]类型 – 10lu unsigned long [int]类型
• C语言有哪些表达式?
– 常量、变量、算术表达式、关系表达式、逻辑表达式、条件表达式、逗 号表达式、赋值表达式、混合表达式、函数调用表达式(这个今天不 讲); – 一共10种! – 呵呵,10种! – 今天讲不完,就不下课。这也是我的原则。。。。☺ :——)
C语言表达式——常量
• 常量是表达式! • 概念:
– 在程序执行的过程中值不变的量;
• 组成:(分为两种)
– 字面(简单)常量 – 符号常量(宏定义做常量、常态的变量做常量)
C语言表达式——常量《字面常量》
• 字面常量(又称简单常量)
– 就是我们在程序中书写的数字和字符。
• 比如:
– 1 – 1.1 – ‘a’
• 这些是什么?常量和变量一样都是有类型,只是我们在写的时候,忽 略掉了而已。 • 上面的几个常量他们的数据类型是什么?
• 到此,C语言的整型数据类型完成。
– 是轻松下,还是继续?
C语言的数据类型——实型
• 想下,数学中实数的形式,和范围。 • C语言中, 和整型数据类型一样, 实型类型同样是明确的名字,和明 确范围的。
– 区别:实型数据是以阶码的形式存储的,不能表示绝对的0值。
• C语言实型数据类型分类:
– 单精度的浮点型:float
• 参看书上P37,书上不是太精确;
– long double 不要纠结过多。 – 提问:谁能用另一词表达“纠结”的含义?
C语言的数据类型——实型
• 一个问题的深入探讨:
– 为什么我们要在VC中使用double而不是float? – 是我们追求完美吗? – 是我们要想省事么?
C语言数据类型——实型
– C语言是一个大小写敏感的语言
• 数字:0-9 • 其他符号:运算符、界符
复习回顾——标识符
• 标识符
– 作用:用作常量、变量、函数的名字; – 构成:
• 由字母和数字组成 • 首字符是字母 • 长度:ANSIC规定:8个;VC规定:256个;
– 分类:
• 保留关键字——32个、不许挪作他用,如:int; • 标准标志符——C语言的标准函数库函数名字,建议不要挪作 他用,如果挪作他用,将失去原先的意义; • 自定义标识符——用户在程序中自行定义的常量、变量、函数 的名字;
• 符号常量,也由标识符定义,一般建议使用大写字符;
复习回顾——关于输入输出
• 关于输入输出
– 输入:
• scanf
– 格式串定义: » %d——整形(int)变量 » %f——单精度的浮点型(float)变量 » %lf—— %lf——双精度的浮点型(double)变量 double
• 要指明放入对应的变量在内存中的位置
• 再想想补码,如果加上类型描述符后,C语言的整型类 型的数据时如何存储的?
C语言的数据类型——整型
• BNF语法描述系统:
– – – – ::=表示定义一个概念 []中的内容 表示可以选0次或者1次; {}中的内容表示可以选0次或者n次; |左右的内容表示可以选择其中的一个;
• 一般严格准确的描述语法规范,不用自然语言,会 产生二义性(如:那不是么。。)所以,描述语法 的严格方式是使用BNF范式。 • 如:描述标识符的BNF
unsigned short [int] [signed] int unsigned int [signed] long [int] unsigned long [int]
• •
参看书上P30,特别注意:
– – long类型书上的不太准确; sign 是缺省的,一般都省略不写,尤其是int的形式。
看下书上P36,例子3.15
– void main ()
复习回顾——变量
• 变量
– 概念:
• 在程序执行过程中,值可以改变的量;
– 在C语言程序中,定义一个变量,需要:
• 说明:变量的名字——标识符; • 说明:变量的类型——如:int、float、double; • (可选)说明:变量的初始值
– 如:int x = 10;
• 回忆下,计算机基础我们学过的补吗,计算机里面 整数的存储的形式是什么?
– 是以补码形式存储的; – 所以C语言的整型数据类型在计算机中是以补码形式 存储的,而且,有占用的内存的容量(以字节为单位)
C语言的数据类型——整型
• int 整型,占用4个字节,以补码形式存储。
– 所以:她的范围:
• -231~231-1
– 1——整形(int)常量 – 1.1——小数常量(是float还是double)?
• 是double!
– ‘a’——字符(char)常量
• 我们碰到了一个新概念:数据类型?
– 类型是什么, C语言有哪些数据类型?
C语言表达式——常量《数据类型》
• 想想数学中的类型:
– 整数、实数。。。
• 程序设计语言中的数据类型和数学中的类 型不同的是:
– 建议,标识符的命名要遵循“见名知义”原则;
复习回顾——C语言程序的基本构成
• C语言程序的基本构成
– #include<stdio.h>
• 包含基本输入输出头文件;
– void main()
• C语言程序缺省的入口,主函数,有并且只能有一个;
–{ }
• 表示程序(若干条语句的集合)的开始和结束;
C语言
第一讲:表达式
第一讲:表达式
• 主要内容:
– 复习回顾 – C语言表达式 – 总结&am字符集 标识符 C语言程序的基本构成 函数 变量 常量 关于输入输出 关于float和double
复习回顾——字符集
• 字母:26个大写字母、26个小写字母、_
• 我们先来看看C语言的实型数据类型的常量:
– – – 1.1 这个是float类型,还是double? 是double类型的常量! 我们是在VC中进行程序编制; VC其实是C++的开发环境; 在C++中,实型(浮点型)常量,如果没有特别标注,都会当成是double类型的常量! 所以:
• • • float x = 1.1; 这个语句是错的!因为这是把一个double类型的常量数据赋值各一个float类型的变量!错! 所以,我们才要求在VC中编制程序的是时候,都把书上的float换成double。 float x = 1.1; 我就想用float类型的x,怎么办? 使用后缀! 1.1f 表示这是一个float的常量,这样就可以了。但是,我们是不是就更麻烦了?
• 4个字节,32位,有效数字6~7位, • 范围: |3.4*10-38~3.4*1038|;
– 双精度的浮点型:double
• 8个字节,64位,有效数字15~16位, • 范围: |1.7*10-308~1.7*10308|;
– 同样,实型数据类型也有类型描述符,但只有一个
• 长双精度的浮点型:long double
C语言表达式
• 为什么要讲表达式:
– 表达式如此的重要, 以致很多时候,我们会把C语言也称为“表达式语 言”。 – 表达式贯穿在C语言的方方面面。
• 表达式要讲什么?
– 对于每一种表达式,我们都要讲:
• 她的概念; • 她的组成、她涉及到的知识点; • 她的值;
– 表达式是有生命的,我们对她好,她会同样对我们好。
– 有明确的名称; – 有明确的范围;
• C语言中的数据类型有些分类?他们的名称 是什么?他们的范围是什么?我们在使用 的时候要注意什么?
涉及知识点:C语言的数据类型
• C语言的数据类型的分类
– 简单的数据类型
• • • • • • • 整型(int) 实型
– – 单精度浮点型(float) 双精度浮点型(double)
– 对应的格式串:float——%f;double——%lf; – 建议将书上的float均改成double,对应的%f均 改成%lf