关于for依赖外部循环的问题,求详细解析?
程序代码如下:#include<stdio.h>
#define ROWS 6
#define CHARS 6
int main(void)
{
int row;
char ch;
for(row=0;row<ROWS;row++)
{
for(ch=('A'+row);ch<('A'+CHARS);ch++)
printf("%c",ch);
printf("\n");
}
return 0;
}
输出结果:
第一行 ABCDEF
第二行 BCDEF
第三行 CDEF
第四行 DEF
第五行 EF
第六行 F
第一行输出:ABCDEF 没疑问
第二行输出为什么会是BCDEF ?不是CE
ROW为6,row小于6,执行6次由0-5,输出为六行。
第二行输出开始第一个ch输出的值不是等于 ch=('A'+row), 然后再执行(ch++)。ch=('A'+1)+1 最终的值等于C后面printf(“c%”,ch);再叠加直到小于(‘A’+CHARS)=G为之前的值F为止,第二行第一个值如果为C接着输出的值不是(C+2)=E