如何正确地给指向数组的指针赋值?
最近看到以下两个例子关于指针的例子:
例一:
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 ";