类型标识符 *指针名;例如,在下面的代码中就分别定义了两个指针,并指向同一个数组:
int num[10]; // 定义一个整形数组 int *p; // 定义一个与数组元素类型相同的指针 p = &num[0]; // 令指针指向数组的首个元素 int *q = &num[0]; // 初始化指针,令其指向数组的首个元素除此之外,也可以直接将数组名赋值给指针。在大多数情况下,数组名代表的就是数组的首地址。
int num[10]; // 定义一个整形数组 int *p; // 定义一个与数组元素类型相同的指针 p = num; // 令指针指向一个数组 int *q = num; // 初始化指针,令其指向一个数组
#include <iostream> int main() { int arr[5] = { 1,2,3,4,5 }; int* p = arr; std::cout << "*(p+2)=" << *(p + 2) << std::endl; std::cout << "arr[2]=" << arr[2] << std::endl; std::cout << "*(arr+2)=" << *(arr + 2) << std::endl; return 0; }运行结果为:
*(p+2)=3
arr[2]=3
*(arr+2)=3
#include <iostream> int main() { int array[5] = { 1, 2, 3, 4, 5 }; int *arrayPtr = array; // 初始化数组指针 std::cout << "原始数组: "; for (int i = 0; i < 5; i++) { std::cout << array[i] << " "; } std::cout << std::endl; int* p = array; // 指向数组第一个元素的指针 int* q = p + (sizeof(array) / sizeof(int)) - 1; //指向数组最后一个元素的指针 //两个指针相遇则终止循环 while (p < q) { //交换两个指针指向的元素 int t = *p; *p = *q; *q = t; p++; // p 指针向后移动 q--; // q 指针向前移动 } std::cout << "反转后的数组: "; for (int i = 0; i < 5; i++) { std::cout << array[i] << " "; } std::cout << std::endl; return 0; }运行结果为:
原始数组: 1 2 3 4 5
反转后的数组: 5 4 3 2 1
本文链接:http://task.lmcjl.com/news/7459.html