今天复习了下C++种的指针赋值问题,突然有个问题搞不懂了。问题如下
当我输入
int *p;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
p = a;
时没有问题,这个咱也理解,就是把数组a 的地址赋给指针p。
**************** 华丽的分割线 ***********************
但是当我输入下面的东东时就有问题了
int *p;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
*p = a;
编译器的提示是error C2440: '=' : cannot convert from 'int [10]' to 'int'
**************** 华丽的分割线 ***********************
当我按照谭浩强课本中的示例输入以下程序
nt a[10] = {1,2,3,4,5,6,7,8,9,10};
int *p = a;
时就好了
由于我对C++的内部机制不是很理解,所以不知道为啥在初始给指针赋值的时候就可以把一个地址赋值给*P
有知道的同学吗 来说下哈^_^