预期的结果是打印与我们输入的值相同的值,但输出在第一行之后为零。将数组传递给函数会改变它的值吗?
#include<stdio.h>
void display(int *q, int);
int main() {
int i,j,n;
int d[50][50];
printf("Input the order\t");
scanf("%d", &n);
for (i=0;i<=(n-1);i++) {
for (j=0;j<=(n-1);j++) {
scanf("%d", &d[i][j]);
}
}
display (d, n);
}
void display (int *q, int r) {
int i,j;
for (i=0;i<r;i++) {
for (j=0;j<r;j++) {
printf("%d\t", *(q + i*r + j));
}
printf("\n");
}
}
编译器在将它传递给'display'后不知道'd'的尺寸。 – goodvibration
搜索如何将多维数组传递给C中的函数。例如,请参阅[本文](http://stackoverflow.com/q/16943909/478288)。 – chrisaycock