| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1850 人关注过本帖
标题:关于for依赖外部循环的问题,求详细解析?
只看楼主 加入收藏
jenq
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-4-9
结帖率:50%
收藏
已结贴  问题点数: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  

搜索更多相关主题的帖子: for 解析 row printf 输出 
2018-04-11 23:01
jenq
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-4-9
收藏
得分:0 
补充问题是否在于运算符优先级?
2018-04-11 23:06
yuandefeng
Rank: 4
等 级:业余侠客
威 望:3
帖 子:51
专家分:216
注 册:2017-11-28
收藏
得分:3 
这是嵌套循环,先从外部循环进入循环体,row=0,循环体内又有一个循环,先执行内循环,所以第一行输出ABCDEF,内循环结束,此时再跳转到外循环,row+1,再进入内循环,输出BCDEF,内循环又结束,再到外循环迭代。
2018-04-12 06:23
欧讷河文
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2018-3-28
收藏
得分:3 
先内循环,内循环结束在外循环,又内循环
2018-04-12 09:51
螃蟹爱吃小鱼
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:51
专家分:145
注 册:2018-3-6
收藏
得分:3 
不清楚的时候单步执行,看看结果。
2018-04-13 22:40
dzdzdzd
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2017-11-28
收藏
得分:3 
单步调试下  试试
2018-04-15 09:01
快速回复:关于for依赖外部循环的问题,求详细解析?
数据加载中...
 
   



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

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