我写了这个函数,但是当我打印数组时,得到不正确的数字: 问题是因为MAX_SIZE,如何在不改变MAX_SIZE的情况下解决这个问题?
#include <stdio.h>
int MAX_SIZE = 3;
void print(int arr[MAX_SIZE][MAX_SIZE],int n)
{
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
printf("%d ", arr[i][j]);
}
int main()
{
int arr[][2] = {{1, 2}, {4, 5}};
print(arr,2); // 1 2 5 0
return 0;
}
首先,你应该在 C 中声明常量,如下所示:
#define MAX_SIZE <value>
如果您将MAX_SIZE
设置为2
,您的问题将得到解决,因为您尝试访问arr[][2]
而不是arr[][3]
.
正确的语法:
#define MAX_SIZE 2
输出:
1 2 4 5
就是这样。