【发布时间】:2012-07-15 15:04:30
【问题描述】:
#include "stdio.h"
void main(){
int a[2][2]={1, 2, 3, 4};
int a[2][2]={1, 2, 3, 4};
display(a, 2, 2);
show(a, 2, 2);}
}
display(int *k, int r, int c){
int i, j, *z;
for(i = 0; i < r; i++){
z = k + i;
printf("Display\n");
for(j = 0; j < c; j++){
printf("%d", *(z + j));
}
}
}
show(int *q, int ro, int co){
int i, j;
for(i = 0; i < ro; i++){
printf("\n");
for(j = 0; j < co; j++){
printf("%d", *(q + i*co + j));
}
}
}
输出:
Display
12
23
Show
12
34
为什么Display() 没有显示 1223 而show() 给出 1234?两者都使用相同的逻辑来显示二维数组。有人可以帮忙吗?
【问题讨论】:
-
首先,把我们的代码变成可读的格式!
-
请花一点时间来弄清楚如何正确缩进代码。这里没有人愿意阅读那些烂摊子。
-
如果你太懒了,至少在你的文件上运行
indent -kr,然后再复制粘贴它......
标签: c pointers multidimensional-array