例27:main0 fint i char c i=a;c=97; printf("%oc, %\n",c, c) 输出结果:a,97 printf("%c, %d\"i,i) a.97 ④变量赋初值: 在定义变量的同时给变量初始化 如:inta=10; 相当于:inta; float f5.55 a=10 char c=a inta=15b=15d=15 不能写成:inta=b=d=15; 格式为:类型变量名=常量值 请分析下面程序:
16 例2.7:main() {int i; char c; i='a'; c=97; printf("%c,%d\n",c,c); printf("%c,%d\n",i,i); } 输出结果:a,97 a,97 ④变量赋初值: 在定义变量的同时给变量初始化。 如:int a=10; float f=5.55; char c='a'; int a=15,b=15,d=15; 不能写成:int a=b=d=15; 格式为:类型 变量名=常量值 请分析下面程序: 相当于:int a; a=10;
main( f int a; 输出结果是什么? printf("n%d",a) 没有赋初值的变量,其值为一个不定的值。引用该变量, 就回出现上面程序中的问题,产生莫名奇妙的结果 ⑤数据类型转换: C语言允许不同类型的数值型数据可以混合运算,运算 时系统自动将数据转换成同一类型数据 double float ong 必定的 unsigned 转换 har. shor
17 main() { int a; printf("\n%d",a); } 输出结果是什么? 没有赋初值的变量,其值为一个不定的值。引用该变量, 就回出现上面程序中的问题,产生莫名奇妙的结果。 ⑤数据类型转换: C语言允许不同类型的数值型数据可以混合运算,运算 时系统自动将数据转换成同一类型数据。 double long unsigned int float 低级 char,short 高级 必定的 转换
例如:若有iti, float f, double d, long e 则10+a+i*fde表达式运算次序为 将a'转换成97,然后10+a'运算 将i和f都转换成 double型,然后i*运算。 将的结果转换为 double型,然后与的结果相加。 将e转换成 double型,然后d/e运算。 用的结果减的结果。 强制类型转换:格式如下 (类型名)表达式) 例如:( double)a、(int)(x+y)、(foat)(5%3)、(intx+y ⑥算术运算符和算术表达式 基本算术运算符:+ (注:两个整数相除,结果为整数。)
18 例如: 若有 int i, float f, double d, long e 则 10+'a'+i*f-d/e 表达式运算次序为: 将'a'转换成97,然后10+'a'运算。 将i和f都转换成double型,然后i*f运算。 将 的结果转换为double型,然后与 的结果相加。 将e转换成double型,然后d/e运算。 用 的结果减 的结果。 强制类型转换:格式如下 例如:(double) a、(int)(x+y)、(float)(5%3)、(int)x+y ⑥算术运算符和算术表达式 基本算术运算符:+ 、 - 、 * 、 / 、 % (注:两个整数相除,结果为整数。) (类型名)(表达式)
算术表达式和运算符的优先级与结合性: 用算术运算符和括号“()将运算对象连接起来,符合C 语法规则的式子称为算术表达式。 运算对象:常量、变量、函数等。 优先级:先乘除后加减。 结合性:自左至右 例如:a*b/c-1.5+a;a-(b*c) 自增、自减运算符:艹+,-(使变量的值增1或减1) 结合性:自右至左。 只熊用于李量 例如:+i,-i(先自增或自减,后引 1+ (先引用,后自增或自减) 13: printf( %d, ++i) i=3; printf(%od”,计++)
19 算术表达式和运算符的优先级与结合性: 用算术运算符和括号“( )”将运算对象连接起来,符合C 语法规则的式子称为算术表达式。 运算对象:常量、变量、函数等。 优先级:先乘除后加减。 结合性:自左至右。 例如:a*b/c-1.5+’a’ ; a-(b*c) 自增、自减运算符:++ , -- (使变量的值增1或减1) 结合性:自右至左。 例如: ++i , --i (先自增或自减,后引用) i++ , i-- (先引用,后自增或自减) i=3; printf(“%d”,++i); i=3; printf(“%d”,i++);
⑦赋值运算符和赋值表达式 赋值符号: (将赋值符右边表达式的值赋给赋值符 左边的一个变量。) 赋值运算符的数据类型若不一致,则要进行类型转换 转换方式为: 将实型数据赋给整型变量时,舍弃实数的小数部分。 如:i=565,i的值为5。 将整型数据赋给实型变量时,数值不变。 将字符数据赋给整型变量时,将字符数据放到整型变量低8位中。 两种情况,了若字符最高位为1,整型变量的高8位置1,否则高8位置0。 若把字符处理为无符号的量,整型变量的高8位置0。 C=37611111 C=\376 111110 11110值为-2501的值为254
20 ⑦赋值运算符和赋值表达式 赋值符号:= (将赋值符右边表达式的值赋给赋值符 左边的一个变量。) 赋值运算符的数据类型若不一致,则要进行类型转换。 转换方式为: 将实型数据赋给整型变量时,舍弃实数的小数部分。 如:i=5.65 , i 的值为 5。 将整型数据赋给实型变量时,数值不变。 将字符数据赋给整型变量时,将字符数据放到整型变量低8位中。 两种情况: 若字符最高位为1,整型变量的高8位置1,否则高8位置0。 若把字符处理为无符号的量,整型变量的高8位置0。 1 1 11 11 10 1 1 11 11 1111 11 11 10 C='\376' 11 11 11 10 0 0 00 00 00 11 11 11 10 C='\376' i的值为-2 i的值为254