数组和指针的区别

《C/C++学习指南》系列教程, 邵发, http://afanihao.cn

在第9章中,我们已经知道数组的名字就是一个地址,而且数组与指针的写法是很灵活的。
例如,
  int buf[128];
  int* p = buf;
在上面的代码中,
  buf的类型为"长度为128的int型数组",被编译器记作int [128]
  p的类型为 "int型指针”,被编译器记作 int*
可以发现,buf和p的类型是不一样的。

但是,两者是可以“隐式转换”的,下面就是将数组类型转换为指针类型,
int* p = buf;
相当于
int* p = (int*) buf; // 这是显式转换,但没有必要这么做,直接隐式转换就可以了


你可能感兴趣的:(数组和指针的区别)