C语言这里的(*p)[3]是什么意思?

问题描述:

C语言这里的(*p)[3]是什么意思?
#include
int main()
{
\x09int s[2][3]={0},(*p)[3],i=1,j=2;
\x09p=s;
\x09printf("%d\n",*(*(p+i)+j)); //显示0
\x09printf("%d\n",*(p[i]+j)); //显示0
\x09printf("%d\n",*(p+i)+j); //显示2293316
\x09printf("%d\n",(*(p+i))[j]); //显示0
\x09printf("%d\n",*p); //显示2293296
\x09return 0;
}
上面的(*p)[3]是什么意思?怎么读?
还有为什么*(p+i)+j是显示2293316
为什么*p显示2293296
另外*(p+i)+j是否为对s数组的第i行j列元素的不正确引用?
1个回答 分类:综合 2014-12-12

问题解答:

我来补答
没记错的话是定义了一个指向数组的指针,这个数组有三个元素.
再问: ��ôΪʲô*(p+i)+j����ʾ2293316 ?Ϊʲô*p��ʾ2293296 ?
再答: ������ʾ���ǵ�ַ��2293296+24+16=2293316
再问: ��������%d���Ŷ���� ����24 16��ô���ģ�
再答: �ܵ� �࿴������Һþ�û���˲�֪����ô���������У��Ǹ�24=3*8 16=2*8
再答: �ú�ѧϰ��
再问: 2293296+24+16��=2293316 2293296+24+16Ӧ����2293336������Խ��Խ������
再答: ������˼Ŷ ����һ��int��ռ4���ֽ� Ӧ���ǣ�4*3+2*4+2293296=2293316
再问: �ţ����Ҷ��ˣ�лл
 
 
展开全文阅读
剩余:2000
上一页:
下一页:判断题。