我有一个初学者 C 问题。我想在下面的代码...
include <stdio.h>
void iprint();
int i=0;
int main()
{
int j;
for (j=0; j<50; j++)
{
iprint(i);
printf("%d\n",i);
}
}
void iprint(i)
{
i +=1;
//printf("%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)
...每次调用时更新 i 值的函数“iprint”,例如更新 i 以便它可以在 main 中使用,值为 1 用于迭代 2,值为 3 用于迭代 2 等。
我通过将代码更改为:
include <stdio.h>
int iprint();
int i=0;
int main()
{
int j;
for (j=0; j<50; j++)
{
i= iprint(i);
printf("%d\n",i);
}
}
int iprint(i)
{
i +=1;
//printf("%d\n",i);
return(i);
}
Run Code Online (Sandbox Code Playgroud)
我必须返回(i)才能实现吗?问的原因是,如果我有很多使用 i 的函数,那么在它们之间传递 i 有点烦人。相反,如果你能以某种方式更新我,就像你在 matlab 中更新一个全局变量一样,那就太好了。是否可以?
第一个问题是您将变量作为参数传递给函数,因此当函数修改变量时,它仅修改其自己的本地副本,而不是全局变量。也就是说,局部变量i 隐藏全局变量i。
更不用说您实际上没有正确声明参数,因此您的程序甚至不应该编译。