两个for语句的执行顺序是怎样执行的。

请求各位高手,很急... 请求各位高手,很急 展开
 我来答
在晴天的雨伞
2016-06-02 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1230万
展开全部
【问题描述】for循环是C语言中常见的循环语句,for语句括号中的部分,其执行顺序是怎样?
【解析】
for语句的结构如下所示:
for(初始化;条件;调整)
{
示例语句;
}

第一次顺序:初始化 ->条件->示例语句
第二次顺序:调整->条件->示例语句
第三次顺序:调整->条件->示例语句
...
以此类推。

【示例】
看下面一个示例:
[html] view plain copy
for(i = 0, j = -1; j = 1; j++) printf("********\n");
其输出是什么呢?不妨先推导一下,再验证自己的结论。

再看一个文本处理的例子(源码来自《系统程序员成长计划》):
[html] view plain copy
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define IS_WORD_CHAR(c) (isalpha(c) || isdigit(c))

typedef void (*OnWordFunc)(void* ctx, const char* word);

int word_segmentation(const char* text, OnWordFunc on_word, void* ctx)
{
enum _State
{
STAT_INIT,
STAT_IN_WORD,
STAT_OUT_WORD,
}state = STAT_INIT;

int count = 0;
char* copy_text = strdup(text);
char* p = copy_text;
char* word = copy_text;

for(p = copy_text; *p != '\0'; p++)
{
switch(state)
{
case STAT_INIT:
{
if(IS_WORD_CHAR(*p))
{
word = p;
state = STAT_IN_WORD;
}
break;
}
case STAT_IN_WORD:
{
if(!IS_WORD_CHAR(*p))
{
count++;
*p = '\0';
on_word(ctx, word);
state = STAT_OUT_WORD;
}
break;
}
case STAT_OUT_WORD:
{
if(IS_WORD_CHAR(*p))
{
word = p;
state = STAT_IN_WORD;
}
break;
}
default:break;
}
}

if(state == STAT_IN_WORD)
{
count++;
on_word(ctx, word);
}

free(copy_text);

return count;
}
听不清啊
高粉答主

2016-06-02 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
这是二个并列的for 循环。
等第一个for 循环结束之后 ,再做第二个循环。
追问
那第一个for循环要循环28次,那产生的28个sum怎么办;依次代入下一个for循环吗
追答
第一个for循环要循环28次,每求和一次就把所得的和保存到num数组中了。

每次直接按程序指定的,取相应的num中的元素。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式