如果有人能帮助我弄清楚为什么这个函数(fn)不打印 int 数组元素,我将不胜感激?
#include <stdio.h>
void fn (int arr[], int s);
int main(void)
{
int arr[] = {5, 2, 0, 9, 7}, s=5;
fn (arr, s);
}
fn(int arr[], int s)
{
int i;
for (i = 0; i < 5; i++);
{
arr[i]++;
printf("%d ", arr[i] );
}
}
最佳答案
for (i = 0; i < 5; i++);
表达式末尾的分号在进入循环体之前终止 for 循环。因此,主体被编译器视为独立的代码块,与 for 循环无关。
由于循环体与 for 循环分离,变量 i
(for 循环的计数器)超出范围,因为 i
是本地的到 for 循环,并且只能在其内部调用,因为它是在 for 循环的条件语句内声明的。
要解决此问题,请删除 for 循环条件末尾的分号。
关于c - 我猜函数有一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42775394/