一、算法简介
双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多
个数组的多个指针。
若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的
区域即为当前的窗口),经常用于区间搜索。
若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是
排好序的。
二、指针小知识
对于C++ 语言,指针还可以玩出很多新的花样。一些常见的关于指针的操作如下
(1)指针与常量
i. const int * p2, 为常量指针,即指向一个常量(const int)的指针。
ii. int * const p3,为常量指针,指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容(值)可以变化。
(2)指针函数与函数指针
#include <iostream> // addition是指针函数,一个返回类型是指针的函数 int* addition(int a, int b) { int* sum = new int(a + b); return sum; } int subtraction(int a, int b) { return a - b; } int operation(int x, int y, int (*func)(int, int)) { return (*func)(x,y); } // minus是函数指针,指向函数的指针 int (*minus)(int, int) = subtraction; int main() { int* m = addition(1, 2); // 1 + 2 = 3 int n = operation(3, *m, minus); // 3 -3 = 0 std::cout << *m << std::endl; std::cout << n << std::endl; return 0; }
输出结果为:
标签:const,常量,指向,int,玩转,数组,指针 From: https://www.cnblogs.com/spacerunnerZ/p/16949600.html