回 帖 发 新 帖 刷新版面

主题:[讨论][请教] 请教一下


for(x=0,p=&a[0][0];x<N;x++)
    {
    for(y=0;y<N;y++,p++)
    printf("%-4d",*p);
    printf("\n");    
    }

这个为什么不能输出数组!!
只能输出1行!!

回复列表 (共6个回复)

沙发

直接用a[x][y]输出就行了

板凳


这个知道,
但想知道我那个是哪里错了!!
xx

3 楼

二维数组可以想像成二维表格,每一行的首地址不确定。
所以每行首地址都要付个p
p=a[0][0];p++
p=a[1][0];p++
...
...

4 楼

for(x=0;x<M;x++)
    {p=a[x];
    for(y=0;y<N;y++,p++)
    printf("%-4d",*p);
    printf("\n");
    }
这样就可以,我也不知道了。把p=a[x]放到上边就不可了。

我用的是borland c++ 5.5命令行编译器。

5 楼

2维数组不用指针是不能只用一个FOR来表示出来的 
不用指针的方法就是用一个1维数组做中介

6 楼

/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 5
main()
{
int    a[N][N];
int x,y;
int *p;
int sum;
for(x=0,sum=1;x<N;x++)
    {
    for(y=0;y<N;y++,sum++)
    a[x][y]=sum;
    }

for(x=0,p=&a[0][0];x<N;x++)
    {
    for(y=0;y<N;y++,p++)
    printf("%-4d",*p);
    printf("\n");    
    }    
}




检测程序现在又正常了,郁闷!!
不知道原来什么原因出错了!
我用的是tc for windows!

(用tc for windows试验的了,
原来用单片机汇编,现在想用c编程序,汇编太繁了)

顺带问一下,有什么好的c编辑器,最好能够单步调试的,好查什么原因(汇编的习惯)



回应一下3楼和5楼的!
数组是在内存连续开辟空间的,不是分开的.

我实际也是用2次循环,可能你没注意尔尔!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册