c语言Chap3.ppt
文本预览下载声明
(y+8) * 一个表达式应该有一个值 * 一般地,表达式不能为左值 * 请分析下面的赋值表达式∶(a=3*5)=4*3 分析: 先执行括弧内的运算,将15赋给a,然后执行4*3的运算,得12,再把12赋给a。最后a的值为12,整个表达式的值为12。 可以看到∶(a=3*5)出现在赋值运算符的左侧,因此赋值表达式(a=3*5)是左值 注意: 在对赋值表达式(a=3*5)求解后,变量a得到值 15执行(a=3*5)=4*3时,实际上是将4*3的积12赋给变量a,而不是赋给3*5。 逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”。逗号表达式。 如:3+5,6+8 逗号表达式的一般形式: 表达式1,表达式2 逗号表达式的求解: 先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。 第十节 逗号运算符和逗号表达式 例: a=3*5,a*4 分析: 求解a=3*5,a的值为15。然后求解a*4,得60。整个逗号表达式的值为60。 例: (a=3*5,a*4),a+5 分析: 先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。 * 例: ① x=(a=3,6*3) ② x=a=3,6*3 分析: ①为赋值表达式,将一个逗号表达式的值赋给x,x的值等于18 ②为逗号表达式,包括一个赋值表达式和一个算术表达式,x的值为3,整个逗号表达式的值为18。 逗号表达式的一般形式可以扩展为 表达式1,表达式2,表达式3,……,表达式n 它的值为表达式n的值。 注意: 并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 如: printf(“%d,%d,%d”, a, b, c); 作业: P66-67: 3.3, 3.5, 3.9, 3.12 * 34种运算符 * 一个程序应该包含两方面内容: (1)数据的描述 (2)操作步骤 C提供的数据结构是以数据类型形式出现的。 C语言中数据有常量和变量之分。 实型 无值类型 * 单撇号括起来的单个字符、若干个字符 * 结果:total=300 #define 编译预处理命令 * 取变量的值,实际上是通过变量名找到 相应的内存地址,然后从该存储单元中 读取数据。 * * 如何表示一个整数 * 基本、短整型 TC 2Byte,长 4Byte VC 基本、长整型 4Byte,短2Byte * * 最小值呢? * MSDN * 强制类型定义 可以看到不同种类的整型数据可以进行算术运算 * VC short a, b; * 浮点数 实数 * 各部分占多少位,取决于编译系统 * 12345678920 * * * * * * -5/3 * 15个优先级 C 语言有三类运算符参与运算的结合方向是从右至左。即: 单目运算符, 条件运算符, 以及赋值运算符。 运算符优先级从高到低:单目运算符-双目运算符-三目运算符-赋值运算符-逗号运算符 * VC: a = 9, i = 6 * VC: 3,3 (实参自左至右求值) * 例3.6 向字符变量赋以整数。 #include stdio.hvoid main() { char c1,c2; c1 = 97; c2 = 98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2);} 运行结果: a b 97 98 一个字符数据既可以以字符形式输出,也可以以整数形式输出。 例3.7 大小写字母的转换 #include stdio.hvoid main() { char c1, c2; c1=’a’; c2=’b’; c1=c1-32; c2=c2-32; printf(“%c %c″,c1,c2); } 运行结果:A B C语言允许字符数据与整数直接进行算术运算。 说明: 有些系统(如Turbo C、Visual C)将字符变量定义为signed char型。其存储单元中的最高位作为符号位,它的取值范围是-128~127。如果在字符变量中存放一个ASCII码为0~127间的字符,由于字节中最高位为0,因此用%d输出字符变量时,输出的是一个正整数。如果在字符变量中存放一个ASCII码为128~255间的字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。 例程
显示全部