二维数组和指针(C语言)

int *p,a[5],b[3][4];

指针变量给一维数组赋值,可以写成p=a;或则p=&a[0];

二维数组需要写成 p=b[0];
以下为指针与二维数组实例:

#include  <stdio.h>
main() {
        int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
        int (*p)[4]=a;

        printf("%d\n",*(*(p+2) + 3));
}

输出结果为:

23

===========================

应该注意指针数组和二维数组指针变量的区别。这两者虽然都可用来表示二维数组,但是其表示方法和意义是不同的。
二维数组指针变量是单个的变量,其一般形式中"(*指针变量名)"两边的括号不可少。 Continue reading