目录
指针与数组
int arr[] = {1,3,5,6,7,2,3,9,0,4};
int *p = arr;
cout << *p << endl;//结果是1,即arr[0]
cout << *(p+1) << endl;//结果是3,即arr[1]
cout << p[2] << endl;//结果是5,即arr[2]
在上述代码中,数组的名称 arr 等价于&(arr[0]),是一个指向数组首元素的地址,因此可以直接初始化指针 *p 。
指针 p 在这里有 迭代器 的作用。p 指向了数组的首元素的地址, p+1 则指向第二个元素的地址,以此类推。
在这里,p 具有下标运算的功能。p[n]代表数组内第n个元素的地址,这一点等价于数组名称的下标运算。
void printArray(int *arr, int len)
{
for(int i = 0;i != len; ++i)
{
cout << arr[i] << " ";
}
cout << endl;
return;
}
在这里,形参 arr 是一个指针,它指向了一个数组的首元素,因此在这个函数力,形参用下标运算 arr[] 等价于实参的下标运算。