在 C++ 中,指针和函数结合使用可以实现一些高级的功能,例如动态分配内存、修改变量的值等等。以下是指针和函数结合使用的一些例子:
1、动态分配内存
在 C++ 中,可以使用 new 运算符来动态分配内存,例如:
int* p = new int; // 动态分配一个 int 类型的内存块
这里,new 运算符返回一个指向分配的内存块的指针 p,可以通过指针 p 访问分配的内存块。使用完毕后,应该使用 delete 运算符释放分配的内存,例如:
delete p; // 释放分配的内存块
2、修改变量的值
在 C++ 中,可以使用指针来修改变量的值。例如:
void swap(int* p, int* q) {
int tmp = *p;
*p = *q;
*q = tmp;
}
int a = 10, b = 20;
swap(&a, &b); // 交换变量 a 和 b 的值
这里,swap 函数接受两个指向 int 类型的指针作为参数,交换指针所指向的变量的值。在调用 swap(&a, &b) 时,&a 和 &b 分别指向变量 a和变量 b 的地址,swap 函数通过指针来交换变量 a 和 b 的值。
3、函数指针
在 C++ 中,函数也有地址,可以使用指向函数的指针来调用函数,这种指针称为函数指针。以下是函数指针的一个例子:
int add(int a, int b) {
return a + b;
}
int (*p)(int, int) = add; // 声明一个指向函数的指针 p
int result = (*p)(2, 3); // 调用函数 add,计算 2 + 3 的结果
这里,p 被声明为一个指向函数的指针,指向函数 add。通过指针 p 调用函数 add,可以计算出 2 + 3 的结果,并将结果赋给变量 result。