C - 奇怪的2d数组指针行为

Sre*_*yan -2 c arrays

将2d数组传递给函数时遇到问题.看看代码 - :

#include<stdio.h>

void display(int (*arr)[3],int i,int j,int length,int breadth) {

    for(;i<length;i++){
            for(;j<breadth;j++){
                printf("%d ",arr[i][j]);
            }
        printf("\n");
    }
}

void main() {
    int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
    display(arr,0,0,3,3);
    }
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我只能打印出2D数组的第一行.但是当不使用形式参数中的i和j而是将它们声明为display()函数中的局部变量时,一切正常.为什么我不能直接使用传递给函数的本地值?我在Visual Studio 2013中使用Visual C++命令行编译器.

att*_*182 5

你正在做什么,什么时候j会重置为0?