型的指针,但可以类型强制转换*****/
?
?for(i=0;i<3;i++)
?{
? pointer_array[i] = bi_array[i];
?}
?printf("\n");
?print((int(*)[3])pointer,3,3);
?print(pointer_to_pointer, 3 ,3);
?print(pointer_array, 3, 3);
?return 0;
}
对二维数组做如下总结:
1.二维数组和二维指针不是等价的,不能相互赋值
2.指针数组*[] 可以转换为二级指针** 他们相互等价
3.二维数组名和数组指针虽然是一个指针,但编译器并不理解,对他来说是数组类型的指针,但可以类型强制转换
pointer = (int *)array_pointer;? ? array_pointer = (int(*)[3])pointer;? pointer = (int *)bi_array;
4.如果想用函数传递二维数组,一般形参用二级指针**p或指针数组*[],可以支持二级指针和指针数组的实参传递,特殊的还可以用(*p)[N]
------------------------------分割线------------------------------
将C语言梳理一下,分布在以下10个章节中: