指针常量与常量指针 从语法上分别是如何定义的?函数指针与指针函数呢?请举例说明
时间: 2024-10-23 09:15:25 浏览: 22
在C++中,指针常量(const pointer)是指指向常量数据的指针。它的定义通常在声明指针时加上`const`关键字,例如:
```cpp
int x = 5;
const int* const ptr = &x; // 定义一个指向整型常量的常量指针
```
这里,`ptr`是一个不可更改的指针,它指向的是变量`x`这个常量。
相反,常量指针(const指针),则是指针的内容是不可修改的,但可以改变指针本身指向的位置。如:
```cpp
int y[2] = {10, 20};
const int* ptr2 = y; // 常量指针,y数组地址不可变,但是可以改变指针指向数组元素
```
对于函数指针(function pointer),它是指向函数的指针。定义时需要指定函数返回类型和参数列表,比如:
```cpp
void print(int num) {
std::cout << num << "\n";
}
void (*func_ptr)(int) = print; // 函数指针,用于存储print函数的地址
```
这里`func_ptr`是一个函数指针,它可以存储打印整数的函数。
指针函数(pointer to function),实际上是一种特殊的函数,它的返回类型是某个类型的指针,接受一个或多个参数,例如:
```cpp
int add(int a, int b) {
return a + b;
}
// 指针函数的定义
typedef int (*AddFunc)(int, int);
AddFunc adder = add; // 将add函数赋值给指针函数类型的adder
```
`adder`就是一个指针函数,它实际上是`add`函数的引用,允许我们在运行时动态地调用该函数。
阅读全文