在C语言中 三循环 是怎么循环怎么开始 for(i=0;i<3;i++) for(j=0;j<4;j++)for(k=0;k<5;k++)
4个回答
展开全部
目测反汇编一下就很清楚了……
;开头有空白的行是C代码,开头为数字(地址)的行是汇编代码(机器实际执行的过程);若无特殊交代,则代码为顺序执行 (mov为move简写,jmp为jump简写,cmp为compare简写,jge为 jump if greater or equal 简写。(均为英语) )
for(i=0;i<3;i++)
0041136E mov dword ptr [i],0 ;把 i 赋值为0
00411375 jmp main+30h (411380h) ;跳到地址为411380处
00411377 mov eax,dword ptr [i]
0041137A add eax,1
0041137D mov dword ptr [i],eax ;以上三行共同完成使 i 增加1
00411380 cmp dword ptr [i],3
00411384 jge main+6Ch (4113BCh) ;以上两行:若 i 不小于3,则跳到地址为4113BC处
for(j=0;j<4;j++)
00411386 mov dword ptr [j],0 ;把 j 赋值为0
0041138D jmp main+48h (411398h) ;跳到地址为411398处
0041138F mov eax,dword ptr [j]
00411392 add eax,1
00411395 mov dword ptr [j],eax ;以上三行共同完成使 j 增加1
00411398 cmp dword ptr [j],4
0041139C jge main+6Ah (4113BAh) ;以上两行:若 j 不小于4,则跳到地址为4113BA处
for(k=0;k<5;k++);
0041139E mov dword ptr [k],0 ;把 k 赋值为0
004113A5 jmp main+60h (4113B0h) ;跳到地址为4113B0处
004113A7 mov eax,dword ptr [k]
004113AA add eax,1
004113AD mov dword ptr [k],eax ;以上三行共同完成使 k 增加1
004113B0 cmp dword ptr [k],5
004113B4 jge main+68h (4113B8h) ;以上两行:若 k 不小于5,则跳到地址为4113B8处
004113B6 jmp main+57h (4113A7h) ;跳到地址为4113A7处
004113B8 jmp main+3Fh (41138Fh) ;跳到地址为41138F处
004113BA jmp main+27h (411377h) ;跳到地址为411377处
004113BC ;整个循环以后的一句代码(它是什么 在此处不重要)
;开头有空白的行是C代码,开头为数字(地址)的行是汇编代码(机器实际执行的过程);若无特殊交代,则代码为顺序执行 (mov为move简写,jmp为jump简写,cmp为compare简写,jge为 jump if greater or equal 简写。(均为英语) )
for(i=0;i<3;i++)
0041136E mov dword ptr [i],0 ;把 i 赋值为0
00411375 jmp main+30h (411380h) ;跳到地址为411380处
00411377 mov eax,dword ptr [i]
0041137A add eax,1
0041137D mov dword ptr [i],eax ;以上三行共同完成使 i 增加1
00411380 cmp dword ptr [i],3
00411384 jge main+6Ch (4113BCh) ;以上两行:若 i 不小于3,则跳到地址为4113BC处
for(j=0;j<4;j++)
00411386 mov dword ptr [j],0 ;把 j 赋值为0
0041138D jmp main+48h (411398h) ;跳到地址为411398处
0041138F mov eax,dword ptr [j]
00411392 add eax,1
00411395 mov dword ptr [j],eax ;以上三行共同完成使 j 增加1
00411398 cmp dword ptr [j],4
0041139C jge main+6Ah (4113BAh) ;以上两行:若 j 不小于4,则跳到地址为4113BA处
for(k=0;k<5;k++);
0041139E mov dword ptr [k],0 ;把 k 赋值为0
004113A5 jmp main+60h (4113B0h) ;跳到地址为4113B0处
004113A7 mov eax,dword ptr [k]
004113AA add eax,1
004113AD mov dword ptr [k],eax ;以上三行共同完成使 k 增加1
004113B0 cmp dword ptr [k],5
004113B4 jge main+68h (4113B8h) ;以上两行:若 k 不小于5,则跳到地址为4113B8处
004113B6 jmp main+57h (4113A7h) ;跳到地址为4113A7处
004113B8 jmp main+3Fh (41138Fh) ;跳到地址为41138F处
004113BA jmp main+27h (411377h) ;跳到地址为411377处
004113BC ;整个循环以后的一句代码(它是什么 在此处不重要)
展开全部
for(i=0;i<3;i++)
for(j=0;j<4;j++)
for(k=0;k<5;k++)
是分为三层的,现实i=0,j=0,把k循环一遍
i=0,j=1,把k循环一遍
i=0j=2,把k循环一遍
i=0j=3,把k循环一遍
i=1,j=0,把k循环一遍
i=1,j=1,把k循环一遍,以此类推,懂了么?
for(j=0;j<4;j++)
for(k=0;k<5;k++)
是分为三层的,现实i=0,j=0,把k循环一遍
i=0,j=1,把k循环一遍
i=0j=2,把k循环一遍
i=0j=3,把k循环一遍
i=1,j=0,把k循环一遍
i=1,j=1,把k循环一遍,以此类推,懂了么?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个循环应该写成这样:
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<5;k++)
{
}
}
}
嵌套式的循环。
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<5;k++)
{
}
}
}
嵌套式的循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从内向外,先k,再j,最后i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询