六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 20|回复: 0

C/C++

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-26 12:26:15 | 显示全部楼层 |阅读模式
/*指针实现M*N数组array[M][N]的练习
*指针*p实现
*指针数组*q[N]实现
*array实现
*/

#include <stdio.h>
#define M 5
#define N 6

int main()
{
    int array[M][N];
    int cout=1;
    int *p,*q[N],**r;
    int k=0,l=0,v=0;
     
     
    for(int x=0;x<M;x++)        //数组用1,2,3。。。初始化
    {
       for(int y=0;y<N;y++)
       {
          array[x][y]=cout;
          cout++;
       }
    }
         
    p=&array[0][0];               //用指针P实现数组输出
    for(int i=0;i<M*N;i++)
    {
        printf("%4d",*(p+i));
        k++;
        if(!(k%N))               //实现换行
        printf("\n");
    }
     
    printf("\n");

    for(int j=0;j<N;j++)         //列指针q的赋值
    {
        q[j]=&array[0][j];
    }
     
    for(int s=0;s<M;s++)
    {
       for(int t=0;t<N;t++)
       {
           printf("%4d",*(q[t]+N*s));  //用列指针q实现数组输出
           l++;
           if(!(l%N))                 //实现换行
           printf("\n");
       }
    }
     
     printf("\n");

    for(int c=0;c<M;c++)
    {
       for(int d=0;d<N;d++)
          {
             printf("%4d",*(*(array+c)+d));
             v++;
             if(!(v%N))               //实现换行
             printf("\n");
           }
    }
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表