#include<stdio.h>
void compute(int);
int cube(int);
int main( )
{
compute(3);
}
void compute(int in)
{
int res=0,i;
for(i=1;i<=in;i++);
{
res=cube(i);
printf("%d %d",res,i);
}
}
int cube(int n)
{
return (n*n*n);
}
〜
输出:64 4
它是如何发生的?
答案 0 :(得分:15)
for
行末尾的分号。
答案 1 :(得分:6)
由于for
行上有分号,语句会递增i,直到它不是&lt; = 3,即4.然后下面的代码运行。
答案 2 :(得分:0)
由于您使用的是C99,您可能需要养成在for语句本身内声明控制for循环的变量的习惯。
for (int i=1; i<=in; i++);
{
/* i is not in scope here */
}
而且,既然我已经写过了,那么编写循环的惯用方法是从0
开始并使用<
进行测试
for (int i=0; i<in; i++);
{
/* i is not in scope here */
}