c - 我猜函数有一些错误

标签 c

如果有人能帮助我弄清楚为什么这个函数(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/

相关文章:

c++ - 有条件包含的疑问

c - 结构比较

c++ - 在 C++ 中具有唯一条目的队列

c - 重命名文件序列 Matlab

c - 为什么取消引用 main 函数不显示内存内容?

c - 如何获取 GTK+ 中条目的值

c - 重构此 C 代码的最佳方法? CS50 - mario.c(更多)

c - 比较2D数组内部,函数内部的字符串

c - 在 Code Composer Studio 中使用 log_printf

用于 unicode 的 C CSV API