for循环是根据while循环的格式变形,其对比如下:
所以在对应的while循环格式中,能用逗号表达式的地方在for中也能。
这个for可以这样理解:
for(表达式1;表达式2;表达式3)
表达式1 是赋值语句,相当于变量初始化
表达式2 是判断语句
表达式3 相当于普通语句了
不知道这样的解释是否能接受?呵呵……
首先,你所举的例子中有三个逗号表达式:
a=1,b=0,c=0
a<=9,b<=9,c<=9
a++,b++,c++
(ps:表达式是不含分号的。)
下面这个程序会加深你对逗号表达式的理解:
#include
void main()
{
int a=1,b;
b=(++a,a++,a++);
printf("a=%d,b=%d\n",a,b);
}
程序运行输出:a=4,b=3
可以看出:
一,逗号表达式会对每个式子都执行运算,如"b=(++a,a++,a++);"这一行,执行完++a后,a的值就变为2了;
二,逗号表达式是从左到右运算的;(若从右到左,则b=4)
三,整个逗号表达式的值为最右边式子的值;
首先,你所举的例子中有三个逗号表达式:
a=1,b=0,c=0
a<=9,b<=9,c<=9
a++,b++,c++
(ps:表达式是不含分号的。)
下面这个程序会加深你对逗号表达式的理解:
#include
void
main()
{
int
a=1,b;
b=(++a,a++,a++);
printf("a=%d,b=%d\n",a,b);
}
程序运行输出:a=4,b=3
可以看出:
一,逗号表达式会对每个式子都执行运算,如"b=(++a,a++,a++);"这一行,执行完++a后,a的值就变为2了;
二,逗号表达式是从左到右运算的;(若从右到左,则b=4)
三,整个逗号表达式的值为最右边式子的值;