指针常量与常量指针
| 指针常量 | 常量指针 |
---|
本质 | 常量 | 指针 |
与常量关系 | 常量的值是一个指针 | 这个指针指向的对象是常量 |
const 位置 | const 位于 * 右侧 | const 位于 * 的左侧 |
指针指向的对象是否可变 | 不能 | 可以 |
指针指向的对象的值是否可变 | 可以 | 不能 |
#include <iostream>
using namespace std;
int main(){
int var = 6;
int var2 = 8;
const int cvar = 3;
const int cvar2 = 5;
int * const p1 = &var;
*p1 = 3;
p1 = &var2;
int const * p2 = &cvar;
const int * p3 = &cvar;
*p2 = 4;
p3 = &cvar2;
}
指针函数与函数指针
- 指针函数
- 指针函数的返回值是指针的函数
- 本质:函数
- 返回值类型:指针
- 函数指针
- 函数指针即指向函数的指针
- 本质:指针
- 所指对象类型:函数
#include <iostream>
using namespace std;
struct s{
int val;
};
s * fun1(int x){
s * st = new s();
st->val = x;
return st;
}
int fun2(int x1, int x2){
return x1 + x2;
}
int main(){
s * p1 = fun1(10);
int (* p2)(int x1, int x2) = fun2;
cout << p2(1, 2);
}