指针存储变量的存储位置或地址。换句话说,指针引用一个存储位置,并且获取存储在该存储位置的值称为取消引用指针。
给出了使用指针访问数组的单个元素的程序,如下所示:
#include <iostream> using namespace std; int main() { int arr[5] = {5, 2, 9, 4, 1}; int *ptr = &arr[2]; cout<<"The value in the second index of the array is: "<< *ptr; return 0; }
输出结果
The value in the second index of the array is: 9
在上面的程序中,指针ptr将元素的地址存储在数组的第三个索引处,即9。
在下面的代码片段中显示了这一点。
int *ptr = &arr[2];
指针被取消引用,并使用间接(*)运算符显示值9。这证明如下。
cout<<"The value in the second index of the array is: "<< *ptr;
给出了另一个使用单个指针访问数组的所有元素的程序,如下所示。
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int *ptr = &arr[0]; cout<<"The values in the array are: "; for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; } return 0; }
输出结果
The values in the array are: 1 2 3 4 5
在上面的程序中,指针ptr存储数组的第一个元素的地址。这样做如下。
int *ptr = &arr[0];
此后,使用for循环取消引用指针并打印数组中的所有元素。指针在循环的每次迭代中递增,即在每次循环迭代中,指针指向数组的下一个元素。然后打印该数组值。在下面的代码片段中可以看到。
for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; }