好的,所以我有一个需要翻转和打印的 10x10 数组。我做这个功能就是为了做到这一点
void flip(int d[][10], int rows)
{
int temp, x, y, cols;
cols=rows;
for(x=0; x<rows; x++)
{
for(y=0; y<cols; y++)
{
temp=d[x][y];
d[x][y]=d[y][x];
d[y][x]=temp
}
}
}
现在我知道数组是通过引用传递的,但我还在某处读到数组本身充当指针,因此您不必使用看起来正确的指针表示法。我的问题是,当我在翻转后尝试打印时,它不会打印翻转后的数组,而是打印出原始数组,让我认为它没有翻转原始数组。
这是打印功能。
void printArray(int d[][10])
{
int rows, cols,x,y;
rows = sizeof(d[0])/sizeof(d[0][0]);
cols = rows;
for(x=0;x<rows; x++)
{
for(y=0;y<cols;y++)
printf("%2d ",d[x][y]);
printf("\n");
}
}
奇怪的是,如果我将 temp 更改为像数字 10 这样的“硬”值,那么它会打印出一个 10x10 数组,其中一半是 10s。我在这里不知所措,为什么简单的交换不起作用:(