阿库拉级核潜艇和台风:一个C的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 00:32:34
main()
{ int i,x[3][3]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*p)[4]=a,i,j,k=0;
.
.
.
其中 int(*p)[4]=a 是什莫意思呀,偶是初学者,详细一点,谢谢大家.
似乎题抄错了,不好意思
main()
{ int i,a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*p)[4]=a,i,j,k=0;
.

其中:a就是你定义的a[3][3]的数组名称啊.
也代表分配给该数组的存储空间的首地址.
其实,用指针访问数组元素只需要定义:
int * p;
然后:
p=a;

就可以让p指向该数组a[3][3]第一个元素了.

a是哪里冒出来的啊,如果a是常量,也应该加''啊

int *p[4];定义一个包含四个指针的数组。
int (*p)[4];定义一个指向一维数组的指针,所指向的一维数组大小为4。

a应该是一个数组的首地址吧?a的形式应该是a[][4]才对。
int(*p)[4]=a是定义了一个指针p,并把a的首地址付给p‘可以通过p来表示数组a,如下面的都是等价的:
a[0][0]=*(*(p+0)+0)
a[1][0]=*(*(p+1)+0)
a[2][3]=*(*(p+2)+3)
...

int(*p)[4]=a
int(*p)[4]为指针数组
(*p)[0]指向a[0]的地址

看看。int (*p)[4];定义一个指向一维数组的指针,所指向的一维数组大小为4