c++中 int(*pa)[3](a)是什么意思 a[3][3]是二维数组 请问为什么前面只有一个[3]
3个回答
展开全部
int(*pa)[3](a)是作用是把pa指向了a, 结果是,pa具有了a一样的功能,相当于把给数组a一个另外的名字,
把语句int(*pa)[3](a);拆解如下:
第一步int(*pa)[3] 声明pa为一个数组指针,(不要和指针数组混淆,
指针数组声明是int*pa[3])
指针的长度还没定,但是指针管理的堆的每个元素都定为一个大小为3的数组,
这个3不能改,如果改了,用a给pa赋值就不行了,
第二步,pa=a; 其实就是pa(a);
关于数组的声明和复制,我写了一篇小文章,希望能帮到你.
http://hi.baidu.com/shiwen124/item/48221a0279dfa3bca2df43e0
把语句int(*pa)[3](a);拆解如下:
第一步int(*pa)[3] 声明pa为一个数组指针,(不要和指针数组混淆,
指针数组声明是int*pa[3])
指针的长度还没定,但是指针管理的堆的每个元素都定为一个大小为3的数组,
这个3不能改,如果改了,用a给pa赋值就不行了,
第二步,pa=a; 其实就是pa(a);
关于数组的声明和复制,我写了一篇小文章,希望能帮到你.
http://hi.baidu.com/shiwen124/item/48221a0279dfa3bca2df43e0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询