| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 168 人关注过本帖
标题:关于for依赖外部循环的问题,求详细解析?
只看楼主 收藏
jenq
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2018-4-9
结帖率:33.33%
  已结贴   问题点数:10  回复次数:5   
关于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  

2018-04-11 23:01
jenq
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2018-4-9
  得分:0 
补充问题是否在于运算符优先级?
2018-04-11 23:06
yuandefeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:45
专家分:158
注 册:2017-11-28
  得分:3 
这是嵌套循环,先从外部循环进入循环体,row=0,循环体内又有一个循环,先执行内循环,所以第一行输出ABCDEF,内循环结束,此时再跳转到外循环,row+1,再进入内循环,输出BCDEF,内循环又结束,再到外循环迭代。
2018-04-12 06:23
欧讷河文
Rank: 2
等 级:论坛游民
帖 子:12
专家分:12
注 册:2018-3-28
  得分:3 
先内循环,内循环结束在外循环,又内循环
2018-04-12 09:51
螃蟹爱吃小鱼
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:51
专家分:135
注 册:2018-3-6
  得分:3 
不清楚的时候单步执行,看看结果。
2018-04-13 22:40
dzdzdzd
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2017-11-28
  得分:3 
单步调试下  试试
7 天前 09:01







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.186281 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved