C语言中的二级指针和二维数组问题(二)

2015-04-07 15:29:22 · 作者: · 浏览: 107
型的指针,但可以类型强制转换*****/
?


?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个章节中: