1、对于数组来说是静态的,所以在创建数组的时候数组首元素的地址也就是数组的地址是确定的,所以在函数传参的时候将数组地址直接作为函数实参传入即可,因为会自动对该地址中的数据进行操作;
2、vector定义的是一个动态数组,在不断申请空间的过程中可能会改变动态数组的首元素地址也就是动态数组的地址,可以理解为动态数组的长度动态位置也是动态的,所以不能将其地址作为参数传入函数,因为很可能已经变了(具体没研究过STL,做题的时候发现的先记下来)。
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() { 6 vector<int>v; 7 v.push_back(0); 8 cout << &v[0] << endl; 9 for (int i = 0; i < 100; i++) 10 v.push_back(i); 11 cout << &v[0] << endl; 12 return 0; 13 }
运行结果: