Chinaunix首页 | 论坛 | 博客
  • 博客访问: 336069
  • 博文数量: 92
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 960
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-21 19:38
文章分类

全部博文(92)

文章存档

2010年(71)

2009年(21)

我的朋友

分类: 嵌入式

2010-06-12 09:50:32

二维数组指针

多维数组与指针

含义

a

二维数组名,指向一维数组a[0],即0行首地址

2000

a[0,

*(a+0),

*a

00列元素地址

2000

a+1&a1

1行首地址

2008

a1,*(a+1)

10列元素a[1][0]的地址

2008

A[1]+2,

*(a+1)+2,

&a[1][2]

12列元素a[1][2] 的地址

2012

*(a[1]+2),

*(*(a+1)+2),

a[1][2]

12列元素a1][2]的值

元素值为13

 

定义

含义

int i;

定义整型变量i

int?*p;

p为指向整型数据的指针变量

int an;

定义整型数组a,它有n个元素

int ?*p[n];

定义指针数组p,它由n个指向整型数据的指针元素组成

int *p)[n];

p为指向含n个元素的一维数组的指针变量

int f();

f为带回整型函数值的函数

int ?*p();

p为带回一个指针的函数,该指针指向整型数据

int *p)();

p为指向函数的指针,该函数返回一个整型值

int **p;

p是一个指针变量,它指向一个指向整型数据的指针变量

 

#include

define  FORMAT ″%d,%d\n″

void main()

int [3][4]={13579,11,13,

                              15,17,19,21,23};

    printf(FORMAT,a,*a);

    printf(FORMAT,a[0] , *(a+0));

     printf(FORMAT,&a[0],&a[0][0]);

     printf(FORMAT,a[1],a+1);

     printf(FORMAT,&a[1][0]*(a+1)+0);

     printf(FORMAT,a[2],*(a+2));

     printf(FORMAT,&a[2],a+2);

    printf(FORMAT,a[1][0],**(a+

                     1)+0));

   

某一次运行结果如下:

 

158,158                (0行首地址和00列元素地址)

158,158                (00列元素地址)

158,158                (00首地址和00列元素地址)

166,166                (10列元素地址和1行首地址)

166,166                (10列元素地址)

174,174                (20列元素地址)

174,174                (2行首地址)

9,9                                (10列元素的值)

 

用指针变量输出二维数组元素的值

#include

void main()

int [3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

  int?*p;

  forp=a[0];p<a[0]+12;p++

   {if((p-a[0])%4==0)

         printf(″\n″);

      printf(″%4d″,*);

 

 

出二维数组任一行任一列元素的值

#include

void  main ( )

int a[3][4]={1357911

               1315,17,19,21,23};

 int *p)[4],i,j;

   p=a;

 scanf(″ i=%d,j=%d″,&i,&j);

    printf(″a[%d,%d]=%d\n″,i,

                     j,**(p+i)+j));

 

 

 

数组指针

void  mainint argcchar *argv

  while(argc>1)

     ++argv

     printf(″%s\n″,argv);

        --argc

       

   

 

数组指针和指向指针的指针

#include

void  main()

    char *name[]={"Follow me""BASIC""Great Wall″,"FORTRAN""Computer design"};

    char ?**p;

    int i;

    for(i=0;i<5;i++)

 {p=name+i;

   printf(″%s\n″,*);

     

 

 

阅读(992) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~