计算机C-C语言编程结构化程序的开发课件.ppt

上传人(卖家):晟晟文业 文档编号:4531711 上传时间:2022-12-17 格式:PPT 页数:47 大小:247KB
下载 相关 举报
计算机C-C语言编程结构化程序的开发课件.ppt_第1页
第1页 / 共47页
计算机C-C语言编程结构化程序的开发课件.ppt_第2页
第2页 / 共47页
计算机C-C语言编程结构化程序的开发课件.ppt_第3页
第3页 / 共47页
计算机C-C语言编程结构化程序的开发课件.ppt_第4页
第4页 / 共47页
计算机C-C语言编程结构化程序的开发课件.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、 1提纲提纲3.1 一些常用的转义序列一些常用的转义序列3.2 再论再论C语言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 2转义序列转义序列含含 义义 描描 述述ntrab换行。将光标定位到下一行的开始位置。换行。将光标定位到下一行的开始位置。水平制表符。把光标跳到水平制表符。把光标跳到tab键的下一个输出区。键的下一个输出区。回车

2、。把光标定位在当前行(而不是下一行)的开始回车。把光标定位在当前行(而不是下一行)的开始位置。位置。响铃。使系统铃发声。响铃。使系统铃发声。光标回退一个字符。光标回退一个字符。反斜扛。打印一个反斜扛字符。反斜扛。打印一个反斜扛字符。双引号。打印一个双引号字符。双引号。打印一个双引号字符。3.1 一些常用的转一些常用的转义义序列序列转义字符转义字符:反斜杠:反斜杠;转义序列转义序列:反斜杠后面加上特定的一个字符;:反斜杠后面加上特定的一个字符;3main()printf(123456781234567812345678n);printf(1t12t123tHello!n);/*t的使用的使用*/

3、printf(tHello!n);printf(1234567890);printf(bbHello!n);/*b的使用的使用*/printf(1234r%n);/*打印打印、和和*/printf(“a”);/*使系统发出一声使系统发出一声*/system(pause);return 0;转义字符举例转义字符举例1234567812345678123456781 12 123 Hello!Hello!12345678Hello!%4请按任意键继续请按任意键继续.4提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语言中的数据类型语言中的数据类型 掌握:数据类型的种类、取值范

4、围和格式说明符掌握:数据类型的种类、取值范围和格式说明符3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 5C语言中只有以下几种基本数据类型:语言中只有以下几种基本数据类型:char:字符型,可以存放字符集中的一个字符:字符型,可以存放字符集中的一个字符 int:整型:整型 float:单精度浮点型:单精度浮点型 double:双精度浮点型:双精度浮点型此外,还有用

5、于限定这些基本类型的类型限定符:此外,还有用于限定这些基本类型的类型限定符:short(限定(限定int)、)、long(限定(限定int 和和double)signed和和unsigned(限定(限定char和任何整数类型)和任何整数类型)3.2 C语言中的数据类型语言中的数据类型 63.2 C语言中的数据类型语言中的数据类型一、一、short、long限定整数类型限定整数类型u示例:示例:short int age;long int counter;long long int population;ushort int、long int、long long int可分别简写为可分别简写为s

6、hort,long和和 long long。如:。如:short age;uint数据一般为数据一般为16位或位或32位,位,long数据一般为数据一般为32位位,long long 为为64位。位。u各个编译程序可以根据硬件情况自由选择各个编译程序可以根据硬件情况自由选择int、short、long的长度,唯一限制是的长度,唯一限制是short和和int数据至少要有数据至少要有16位,位,而而long数据至少要有数据至少要有32位;位;short数据长度数据长度int数据长度数据长度 long数据长度数据长度 long long数据长度。数据长度。73.2 C语言中的数据类型语言中的数据类型

7、 三、三、signed、unsigned限定限定char类型和任何整数类型类型和任何整数类型 signed char 、unsigned char signed short、unsigned short signed int、unsigned int signed long、unsigned long signed long long、unsigned long long经经unsignedunsigned限定的类型取值范围必须是正的或者为限定的类型取值范围必须是正的或者为0 0。一一般省略般省略signed,如,如signed char通常写成通常写成char。二、二、long可限定可限定d

8、ouble类型类型 long double 8所以,所以,C语言支持语言支持2种不同的字符类型:种不同的字符类型:signed char、unsigned char转换说明符:转换说明符:signed char:c unsigned char:u取值范围:取值范围:signed char:128127(1字节)字节)unsigned char:0255(1字节)字节)3.2 C语言中的两种字符类型语言中的两种字符类型 9所以,所以,C语言支持语言支持8种不同的整形:种不同的整形:short、unsigned shortint、unsigned intlong、unsigned long lon

9、g long、unsigned long long转换说明符:转换说明符:short:hd,unsigned short:huint:%d,unsigned int:ulong:%ld,unsigned long:lu long long:%lld unsigned long long:%llu 3.2 C语言中的八种整形类型语言中的八种整形类型 10取值范围和具体硬件有关。在取值范围和具体硬件有关。在short是是16位、位、int和和long是是32位、位、long long是是64位的机器上位的机器上数值范围数值范围如下:如下:signed short:-3276832767(16位)位

10、)unsigned short:065535(16位)位)signed int:-2147483648 2147483647(32位)位)unsigned int:04294967295(32位)位)signed long:-2147483648 2147483647(32位)位)unsigned long:04294967295(32位)位)signed long long:(64位)位)-92233720368547758089223372036854775807unsigned long long:(64位)位)0 18446744073709551615 3.2 C语言中的八种整形类型

11、语言中的八种整形类型 11所以,所以,C语言支持支持三种不同长度的浮点数据类型:语言支持支持三种不同长度的浮点数据类型:float、double和和long double。其中其中float一般占字节(一般占字节(2位)、提供位有效数字;位)、提供位有效数字;double一般占一般占8字节(字节(64位)、提供位)、提供1516位有效数字;位有效数字;long double 占占12字节(字节(96位)。位)。转换说明符:转换说明符:float:fdouble:lf long double:lf 3.2 C语言中的三种浮点类型语言中的三种浮点类型 12 3.2 C语言中的三种浮点类型语言中的三

12、种浮点类型 取值范围:取值范围:float:double:long double:13提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 143.3.1 隐式转换隐式转换 C编译器只知道计算操作数的数据类型相同的表达式。编译器只知道计算操作数的数据类型相同的表达式。如

13、果一个运算符两侧的操作数的数据类型不同,则系统如果一个运算符两侧的操作数的数据类型不同,则系统按按“先转换、后运算先转换、后运算”的原则,首先将数据自动转换成的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。同一类型,然后在同一类型数据间进行运算。类型转换分成两种:类型转换分成两种:隐式转换隐式转换和和显式转换显式转换。隐式转换隐式转换的基本原则是将低类型数据转换成高类型数据的基本原则是将低类型数据转换成高类型数据(数据类型提升数据类型提升)。)。各种类型的高低顺序如下:各种类型的高低顺序如下:15高高低低数据类型数据类型scanf函数的转换说明符函数的转换说明符printf

14、函数的转换说明符函数的转换说明符long doubledoublefloatunsigned longlongunsigned intintunsigned shortshortunsigned charchar%lf%lf%f%lu%ld%u%d%hu或或%u%hd%u%c%lf%lf%f%lu%ld%u%d%hu或或%u%hd%u%c数据类型提升的顺序数据类型提升的顺序 16long doublefloat doubleunsigned long longunsigned int unsigned char、unsigned short int char、short转换原则:转换原则:1)

15、所有所有char及及short int 型变量转为型变量转为int型,所有型,所有float转换为转换为double。2)操作数中操作数中 较低类型数据转换成较较低类型数据转换成较高类型数据后再进行运算。高类型数据后再进行运算。注意:箭头方向只表示数据类型由注意:箭头方向只表示数据类型由低向高转换,低向高转换,int型数据和型数据和double型数据混合运算时,型数据混合运算时,int型直接转型直接转换为换为double型,而不是转换成型,而不是转换成unsigned int型,再转换成型,再转换成long型、型、再转换成再转换成unsigned long int型型,最,最后转换成后转换成d

16、ouble型。型。17类型转换实例类型转换实例char ch=Q;int i=2;float f=12.34;double d=15.4;result=(ch/i)+(f*d)(f+i);18赋值中的类型转换在一个赋值语句中,如果赋值运算符左侧变量的在一个赋值语句中,如果赋值运算符左侧变量的类型和右侧表达式的类型不一致,则赋值时将类型和右侧表达式的类型不一致,则赋值时将进行自动类型转换,将右侧表达式的值转换成进行自动类型转换,将右侧表达式的值转换成左侧变量的类型。左侧变量的类型。int n;char ch;float f;double d;则执行语句则执行语句“ch=n;”后,整型变量后,整型

17、变量的高位字节将被切掉;的高位字节将被切掉;执行语句执行语句“n=f;”后,后,n只接收只接收f的整的整数部分,相当于取整运算。数部分,相当于取整运算。19 3.3.2显式转换utotal/counter的运算结果是整型数;的运算结果是整型数;u为了得到浮点值,使用类型转换运算符,形式为:为了得到浮点值,使用类型转换运算符,形式为:(类型说明符类型说明符)表达式表达式 或者或者(类型说明符类型说明符)(表达式表达式),用于将表,用于将表达式的运算结果类型转换为类型说明符指定的数据类型;达式的运算结果类型转换为类型说明符指定的数据类型;u类型转换运算类型转换运算(float)建立了操作数建立了操

18、作数total的浮点值拷贝;存储的浮点值拷贝;存储在在total值的值仍然是一个整型值;思考:下面语句的效果值的值仍然是一个整型值;思考:下面语句的效果 average=(float)(total/counter);u使用类型转换运算符将高类型数据强制转换为低类型数据使用类型转换运算符将高类型数据强制转换为低类型数据时,会引起精度损失(例如浮点转换成整型)或改变数据时,会引起精度损失(例如浮点转换成整型)或改变数据的值(例如的值(例如long转换成转换成short)。)。int total=1230,counter=35;float average;average=(float)total/c

19、ounter;显式转换显式转换 20提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性详见详见C程序设计教程序设计教程程 第第9章,自学章,自学 211.类型转换字符类型转换字符d以带符号的十进制整数形式输出。以带符号的十进制整数形式输出。可以指定输出场宽(总位数)和

20、对齐方式(左对齐还是可以指定输出场宽(总位数)和对齐方式(左对齐还是右对齐)。右对齐)。%5d:场宽为场宽为5,右对齐,左补空格。,右对齐,左补空格。%-5d:场宽为场宽为5,左对齐,右补空格。,左对齐,右补空格。若实际位数超出指定位数,则按实际位数输出若实际位数超出指定位数,则按实际位数输出假设有变量定义如下:假设有变量定义如下:int num1=123;long num2=123456需要程序运行结果如下:需要程序运行结果如下:num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456 3.4 格式指示符格式

21、指示符 22 3.4 格式指示符格式指示符则对应的程序为:则对应的程序为:#include#includemain()int num1=123;long num2=123456;printf(num1=%d,num1=%5d,num1=%-5d,num1=%dn,num1,num1,num1,num1);printf(num2=%ld,num2=%8ld,num2=%ldn,num2,num2,num2);system(“pause”);return 0;23 2.类型转换字符类型转换字符f以小数形式、按系统以小数形式、按系统默认的宽度,输出单精度和双精度实数。默认的宽度,输出单精度和双精度实

22、数。%f:默认方式下输出小数点后默认方式下输出小数点后6位;如:位;如:123.556000。%12f:总共占据:总共占据12位(包括小数点),其中保留小数位(包括小数点),其中保留小数点后面点后面6位。不足位左补零。若实际长度超出指定场宽,位。不足位左补零。若实际长度超出指定场宽,按实际输出。按实际输出。%12.2f:总共占据:总共占据12位(包括小数点),其中保留小位(包括小数点),其中保留小数点后面数点后面2位。不足位左补零,若超出则按实际输出。位。不足位左补零,若超出则按实际输出。%e:总共占据:总共占据13位。如:位。如:1.235560e+002,分,分尾数尾数(1.235560)

23、和)和指数指数(+002)两部分。其中尾数占据)两部分。其中尾数占据8位位(包括小数点包括小数点),最高位不为,最高位不为0,小数点后面保留,小数点后面保留6位;位;指数占据指数占据4位,位,1位是符号位。位是符号位。%12.2e:共占共占12位位(包括小数点和包括小数点和e),其中尾数保留小,其中尾数保留小数点后数点后2位。位。指定输出场宽、对齐方式、小数点后位数指定输出场宽、对齐方式、小数点后位数 24main()float f=123.556;double d1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf

24、(%f,%12f,%12.2f,%-12.2f,%.2fn,f,f,f,f,f);printf(%e,%12e,%12.2e,%-12.2e,%.2en,f,f,f,f,f);printf(d1=%lfn,d1);/输出为输出为d1=1111111111111.111100 printf(d2=%lfn,d2);/输出为输出为d2=2222222222222.222200 printf(d1+d2=%fn,d1+d2);printf(d1+d2=%en,d1+d2);system(pause);2.类型转换字符类型转换字符f以小数形式、按系统以小数形式、按系统默认的宽度,输出单精度和双精度实数

25、。默认的宽度,输出单精度和双精度实数。25程序运行结果如下:程序运行结果如下:123.556000,123.556000,123.56,123.56,123.561.235560e+002,1.235560e+002,1.24e+002,1.24e+002,1.24e+002d1=1111111111111.111100d2=2222222222222.222200d1+d2=3333333333333.333000d1+d2=3.333333e+012 26 main()char c=A;int i=65;printf(c=%c,%5c,%dn,c,c,c);printf(i=%d,%c,i

26、,i);程序运行结果如下:程序运行结果如下:c=A,A,65 i=65,A 3.类型转换字符类型转换字符c输出一个字符输出一个字符 在在C语言中,整数可以用字符形式输出,语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该将整数用字符形式输出时,系统首先求该数与数与256的余数,然后将余数作为的余数,然后将余数作为ASCII码,转换成相应的字符输出。假设码,转换成相应的字符输出。假设i的值的值为为65+256,则用,则用%c输出的是输出的是A 27提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语

27、言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 283.5 赋值运算符赋值运算符=+=+=、-=-=、*=、/=/=和和%=%=c+=3c+=3等价于等价于c=c+3c=c+3;i/=(j-1)i/=(j-1)等价于等价于i=i/(j-1);i=i/(j-1);变量变量=变量变量 运算符运算符 表达式表达式 可写成:可写成:变量变量

28、运算符运算符=表达式表达式 29提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 303.6 自加和自减运算符自加和自减运算符运算符运算符表达式范例表达式范例功能描述功能描述+-+aa+-bb-先将先将a加加1,然后把,然后把a的新值用在出现变量的新值用在出现变量a

29、的表达式中的表达式中在出现变量在出现变量a的表达式中使用的表达式中使用a的当前值,然后将的当前值,然后将a加加1先将先将b减减1,然后把,然后把b的新值用在出现变量的新值用在出现变量b的表达式中的表达式中在出现变量在出现变量b的表达式中使用的表达式中使用b的当前值,然后将的当前值,然后将b减减1+a:前置自增运算符:前置自增运算符-a:前置自减运算符:前置自减运算符a+:后置自增运算符:后置自增运算符a-:后置自减运算符:后置自减运算符编译带有自加(自减)运算编译带有自加(自减)运算符的表达式(如符的表达式(如i+i+)比编)比编译等价的展开的表达式(译等价的展开的表达式(i i=i+1=i+

30、1)快,因为第一个)快,因为第一个表达式中的表达式中的i i只分析了一次,只分析了一次,而第二个表达式中的而第二个表达式中的i i被分被分析了两次。析了两次。313.6 自加和自减运算符自加和自减运算符如:以下两条语句效果相同如:以下两条语句效果相同i;i;设设i当前值为当前值为5,则,则他他以下两条语句效果不同以下两条语句效果不同if(i+5)/先判断先判断i5,然后,然后i值加值加1 if (+i5)/先将先将i值加值加1,然后判断,然后判断i5当自增或自减变量值的运算本身就构成了一条语句时,把当自增或自减变量值的运算本身就构成了一条语句时,把自增或自减运算符放在变量前和放在变量后的效果自

31、增或自减运算符放在变量前和放在变量后的效果是一样的。是一样的。只有当变量出现在大型表达式的上下文只有当变量出现在大型表达式的上下文中时,前置和后置自增或自减运算符才有区别。中时,前置和后置自增或自减运算符才有区别。323.6 自加和自减运算符自加和自减运算符main()int i;i=5;if(i+5)printf(i=%d,i+5 is truen,i);printf(i=%dn,i);i=5;if(+i 5)printf(i=%d,+i5 is truen,i);printf(i=%dn,i);system(pause);i=6i=6,+i5 is truei=6请按任意键继续请按任意键继

32、续.判断判断i5,然后然后i值加值加1i值先加值先加1,然,然后判断后判断i5 333.6 自加和自减运算符自加和自减运算符main()int i;i=5;if(i+4)printf(i=%d,i+4 is truen,i);printf(i=%dn,i);i=5;if(+i 5)printf(i=%d,+i5 is truen,i);printf(i=%dn,i);system(pause);i=6,i+4 is truei=6i=6,+i5 is truei=6请按任意键继续请按任意键继续.将将5改成改成4 343.6 自加和自减运算符自加和自减运算符 测试:测试:y=2;n=3;next

33、num=(+y+n+)*6;num=y+n;求求nextnum 和和num的值?的值?nextnum值为值为36,num值为值为7 35u 自增和自减运算符的操作数只能是自增和自减运算符的操作数只能是一个简单的一个简单的变量名变量名,而不能是常量或者表达式。,而不能是常量或者表达式。5+,+(i+1)都是错误的写法!都是错误的写法!u ANSI没有规定运算符操作数的计算顺序,因没有规定运算符操作数的计算顺序,因此如果在一条语句中将特定变量自增或自减不此如果在一条语句中将特定变量自增或自减不止一次时,程序员应该尽量避免使用自增或自止一次时,程序员应该尽量避免使用自增或自减运算符。如:减运算符。如

34、:(i+)+(i+)+(i+)。3.6 自加和自减运算符自加和自减运算符 36提纲提纲3.1 一些常用的转移序列一些常用的转移序列3.2 再论再论C语言中的数据类型语言中的数据类型3.3 混合运算时各种数据类型之间的转换混合运算时各种数据类型之间的转换3.4 格式化输出格式化输出3.5 赋值运算符赋值运算符3.6 自增和自减运算符自增和自减运算符3.7 条件运算符和逗号运算符条件运算符和逗号运算符3.8 算术运算符的优先级和结合性算术运算符的优先级和结合性 37条件运算符条件运算符?:(C C语言语言唯一的三目运算符唯一的三目运算符)条件表达式条件表达式 含有条件运算符的表达式含有条件运算符的

35、表达式 执行过程执行过程 先求表达式先求表达式1的值,若值为非的值,若值为非0(为真),(为真),则计算表达式则计算表达式2的值作为条件表达式的值;若值为的值作为条件表达式的值;若值为0(为假),则计算表达式(为假),则计算表达式3的值作为条件表达式的值作为条件表达式的值。的值。ch=(ch=A&ch=A&ch 4000&residency 4000 和和residency 4000&residency 5的值,的值,接着求出条件表达式的值,最后进行赋值运算。接着求出条件表达式的值,最后进行赋值运算。42运算符运算符类型类型()+-(类型类型)!*/%+-=!=&|?:=+=-=*=/=%=,

36、圆括号圆括号单目运算符单目运算符乘除法运算符乘除法运算符加法运算符加法运算符关系运算符关系运算符相等测试运算符相等测试运算符逻辑逻辑“与与”逻辑逻辑“或或”条件运算符条件运算符赋值运算符赋值运算符逗号运算符逗号运算符高高低低单目运算符单目运算符 高于高于 算术运算符算术运算符 高于高于 关系运算符关系运算符 高于高于 逻辑运算符逻辑运算符 高于高于 条件运算符条件运算符 高于高于 赋值运算符赋值运算符 高于高于 逗号运算符逗号运算符运算符优先级运算符优先级 43uprintf(“-a+=%dn”,-a+);-和和+优先级相同,怎么计算?优先级相同,怎么计算?u结合性结合性:当一个操作数两侧的运

37、算符具有相同的优先级时,该:当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。操作数是先与左边的运算符结合,还是先与右边的运算符结合。如:如:-a+是相当于是相当于-(a+)还是还是(-a)+?u从右向左结合性从右向左结合性:当一个操作数两侧的运算符具有相同的优先:当一个操作数两侧的运算符具有相同的优先级,且这两个运算符的结合性都是级,且这两个运算符的结合性都是从右向左从右向左,则操作数与,则操作数与右右侧侧的运算符结合,先进行右侧的运算;如:的运算符结合,先进行右侧的运算;如:-和和+都是都是从右向左从右向左结合,因此结合,因此-a+;等价

38、于:;等价于:-(a+);u从左向右结合性从左向右结合性:当一个操作数两侧的运算符具有相同的优先:当一个操作数两侧的运算符具有相同的优先级,且这两个运算符的结合性都是级,且这两个运算符的结合性都是从左向右从左向右,则操作数与,则操作数与左左侧侧的运算符结合,的运算符结合,先进行左侧的运算;如:算数运算符从左向先进行左侧的运算;如:算数运算符从左向右结合,因此右结合,因此a+b-c等价于等价于(a+b)-cu会不会优先级相同的运算符具有不同的结合性?会不会优先级相同的运算符具有不同的结合性?结论:优先级结论:优先级相同的运算符结合性也相同。相同的运算符结合性也相同。3.8 目前学过的运算符优先级

39、和结合性目前学过的运算符优先级和结合性 44目前学过的运算符优先级和结合性目前学过的运算符优先级和结合性运算符运算符结合性结合性类型类型()+-(类型类型)!*/%+-=!=&|?:=+=-=*=/=%=,自左向右自左向右自右向左自右向左自左向右自左向右自左向右自左向右自左向右自左向右自左向右自左向右自左向右自左向右自左向右自左向右自右向左自右向左自右向左自右向左自左向右自左向右圆括号圆括号单目运算符单目运算符乘除法运算符乘除法运算符加法运算符加法运算符关系运算符关系运算符相等测试运算符相等测试运算符逻辑逻辑“与与”逻辑逻辑“或或”条件运算符条件运算符赋值运算符赋值运算符逗号运算符逗号运算符除

40、除单目运算符单目运算符、赋值运算符赋值运算符和和条件运算符条件运算符是右结是右结合性外,其它运算符都是左结合性。合性外,其它运算符都是左结合性。45#includemain()int a=1,b,c;printf(“-a+=%dn”,-a+);/*右结合右结合,相当于相当于-(a+)*/printf(“a=%dn”,a);a=b=c=3;/*右结合右结合,相当于相当于c=3;b=c;a=b,*/printf(“a=%d,b=%d,c=%dn”,a,b,c);a+=b+=3;/*右结合,相当于右结合,相当于b+=3;a+=b;*/printf(a=%d,b=%dn,a,b);-a+=-1a=2a=3,b=3,c=3a=9,b=6单目运算符和赋值运算符右结合性示例:单目运算符和赋值运算符右结合性示例:46 要想根据需求写出正确的表达式、或者读懂别要想根据需求写出正确的表达式、或者读懂别人写的表达式,就必须记清楚运算符的优先级人写的表达式,就必须记清楚运算符的优先级和结合性。和结合性。目前学过的运算符优先级和结合性目前学过的运算符优先级和结合性 47

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(计算机C-C语言编程结构化程序的开发课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|