首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么正确地给指向数组的指针赋值

2012-02-10 
如何正确地给指向数组的指针赋值?最近看到以下两个例子关于指针的例子:例一:intarray[10]int(*pa)[10]pa

如何正确地给指向数组的指针赋值?
最近看到以下两个例子关于指针的例子:
例一:
int   array[10];  
int   (*pa)[10];  
pa=&array;:  

例二:
int   array[10]={0,1,2,3,4,5,6,7,8,9};  
int   *pa=array;  

这两个例子中的pa指针都是指向数组array,上述的赋值方法正确吗?为什么第一个例子的赋值语句不能是pa=array?


[解决办法]
array相当于&array[0],也就是第一个元素的地址。所以第一种情况要用&array,第二种情况直接用array
[解决办法]
int (*pa)[10]; -------pa 是指向一个含有10个int型的数组.

int array[20][10];
int (*pa)[10];
pa=array;

貌似还没看见象LZ例一那样的..
-----------------------------------------------------
int array[10];
int (*pa)[10];
pa=&array;
[解决办法]
类型不匹配


int(*)[] == [][]


[解决办法]
为什么第一个例子的赋值语句不能是pa=array

第二个可以通过,
那么第一个显然就不对了嘛 ~

否则不是
int (*pa)[10];
等价 int *pa=array; ?? 显然不对 ·
[解决办法]
int (*pa)[10];
是二级指针。例如:
char (*pa)[5]={ "Jone ", "wang ", "zhang ", "white ", "Bround "};
则有:
*pa= 'J ';
pa= "Jone ";
*pa[1]= "w ";
pa[1]= "wang ";或者(pa+1)= "wang ";

热点排行