一个关于二维数组名与指针赋值的问题
二维数组名究竟可以赋给哪些类型的指针?为什么可以赋给指向一维数组的指针? 问题点数:20、回复次数:5Top
1 楼Solmyr_biti(Muxia)回复于 2003-06-03 13:21:45 得分 10
你把数组当做指针就明白了
而实际上指针就是一个ULONG,指针可以强制赋给一个long,甚至int,甚至char
而两个指针之间的赋值完全依靠变异的时候的检查。Top
2 楼Solmyr_biti(Muxia)回复于 2003-06-03 13:22:25 得分 0
刚才打字错误,应该是编译,不是变异Top
3 楼zw741027(张伟)回复于 2003-06-03 13:33:29 得分 0
同意楼上说的指针数组名称实际上都是指针,至于指针实际上是一个整数,将指针赋给什么变量实际上取决于你想对这段地址进行何种操作,比如希望一个字节一个字节的访问,尽管将该地址赋给一个char类型的指针好了,如果希望按照整数(4个字节),同样可以赋给一个整型指针,还有赋给一个自定义结构类型指针,如果希望按照该结构进行操作。Top
4 楼jiangweijia(佳佳)回复于 2003-06-03 13:39:28 得分 0
但是如果只是这么简单的话,那么又怎么解释:int a[3][4],*p;
将p=a却不可以
Top
5 楼three1103(扬华)回复于 2003-06-03 14:01:28 得分 10
因为a是一个二维指针,p则是一个一维的指针,类型不一样呀,
如果定义:int a[3][4],**p;
则可以:p=a;*p=a[1];*p=a[2];**p=a[2][2];等等的.Top




