6.1循环控制结构--本章知识点6.1循环控制结构6.2while语句6.3dowhile语句6.4逗号运算符和逗号表达式6.5for语句6.6空语句在循环中的使用6.7循环语句的选择6.8循环嵌套6.9break和continue语句
6.1 循环控制结构-本章知识点 6.1 循环控制结构 6.2 while语句 6.3 do while语句 6.4 逗号运算符和逗号表达式 6.5 for语句 6.6 空语句在循环中的使用 6.7 循环语句的选择 6.8 循环嵌套 6.9 break和continue语句
6.4逗号运算符和逗号表达式---P1001.逗号运算符及优先级在c语言中“,”是分隔符,也是一种特殊的运算符一一逗号运算符,又称为“顺序求值运算符”注意:不是任何地方出现的逗号都是作为逗号运算符。例: int a,b,c; ;Ⅱ,是分隔符
1. 逗号运算符及优先级 • 在C语言中“ ,”是分隔符,也是一种特殊的运算 符——逗号运算符,又称为“顺序求值运算符” 。 • 注意:不是任何地方出现的逗号都是作为逗号 运算符。 例: int a,b,c; // , 是分隔符 6.4 逗号运算符和逗号表达式-P100
2.逗号表达式:用逗号运算符将若干表达式连接起来。①格式:表达式1,表达式2,表达式3,,表达式n先求解表达式1,再求解表达式22逗号表达式的求解过程:依次求到表达式n-----表达式n的值是整个逗号表达式的值。注意1:逗号运算符的优先级是所有运算符中优先级最低的例1: 3+5,a=4,b=5,a+b,r=a*b-2 // 结果是a=4,b=5,r=18例2:/a的值是5,x的值是5x=a=5,7* 3例3:y=(x=a=8,6*2)// a、x的值都是8,y的值是12注意2:等价于[t=a; a=b; b=t; }t=a,a=b,b=t;例4:if(a<b)(t=a;a=b;b=t;)福等价于if(a<b)t=a,a=b,b=t;不提倡
2.逗号表达式:用逗号运算符将若干表达式连接起来。 ① 格式:表达式1,表达式2,表达式3,.,表达式n ② 逗号表达式的求解过程:先求解表达式1,再求解表达式2, 依次求到表达式n-表达式n的值是整个逗号表达式的值。 注意1:逗号运算符的优先级是所有运算符中优先级最低的。 例1:3+5, a=4, b=5, a+b, r= a*b-2 // 结果是 a=4 ,b=5 , r=18 例2:x=a=5,7* 3 // a的值是5,x的值是5 例3:y=(x=a=8,6* 2) // a、x的值都是8,y的值是12 注意2: { t=a; a=b; b=t; } 等价于 t=a,a=b,b=t; 例4:if (a<b) { t=a; a=b; b=t; } 等价于 if (a<b) t=a, a=b, b=t; //不提倡
3.逗号的结合性:左结合性。即逗号表达式的求值顺序是从左向右依此计算用逗号分隔的各表达式的值。逗号表达式的用途:常用于循环for语句中。随堂练习--下列表达式执行后,变量值?表达式值?1.b=(a=3*5,a*4)//a的值是15,表达式值60,b的值是60a=3*5a*4a+5//a=15,表达式值20//a的值是3表达式值18,x的值是182.x=(a=3,6*3)//x、a的值都是3,表达式值18x=a=3,6*a3. int a=1. b=2, c =3;1/输出1,2,3printf ("%d,%d,%d",a, b, c);1/输出3,2,3printf ("%d,%d,%d", (a, b, c), b, c);
3. 逗号的结合性:左结合性 。即逗号表达式的求值顺序是从 左向右依此计算用逗号分隔的各表达式的值。 逗号表达式的用途:常用于循环for语句中。 随堂练习-下列表达式执行后,变量值?表达式值? 1. b=(a = 3 * 5, a * 4) a = 3 * 5, a * 4, a + 5 2.x = (a = 3, 6 * 3) x = a = 3, 6 * a 3. int a = 1, b = 2, c = 3; printf ("%d,%d,%d", a, b, c); printf ("%d,%d,%d", (a, b, c), b, c); //a的值是15,表达式值60,b的值是60 //a=15,表达式值20 //a的值是3,表达式值18,x的值是18 //x、a的值都是3,表达式值18 //输出 1,2,3 //输出 3,2,3
表6-1运算符优先级与结合性+运算符优先级+结合性从左至右1u0%从右至左!+++(类型)sizeof2+从左至右*/%+3u从左至右4v+从左至右6u<VUV7从左至右11从左至右&&s从左至右12+Iv从左至右2134从右至左14h=十==*=/=%=+154从左至右W