指针函数,指针数组,指针常量

指针数组,内部元素全是指针的一个数组
int *a[5]; 
char *arr[4] = {"hello", "world", "shannxi", "xian"};
//arr是一个指针数组,它有四个元素,每个元素是一个char *类型的指针,
//这些指针存放着其对应字符串的首地址。

数组指针,指向某种类型数组的一个指针
int (*a)[5];

指针函数,带指针的函数,返回类型是某一类型的指针
int *fun(int, int); 
函数指针,指向函数的指针变量,本质是一个指针变量
int (*fun)(int, int); //声明一个函数指针
int max(int, int);
fun = max; // 将max函数的手机只赋给指针fun,也可以写成 fun = &max;
eg:
int (*op[2])(int, int); // 定义一个函数指针数组,包含两个指针元素
op[0] = max; // 第一个指针指向max函数
op[1] = min; // 第二个指向min函数

指针常量,不能修改这个指针所指向的地址,但是可以修改指向的内容。
int a = 9, b = 8;
int* const num;
num = &a;
num = &b; //error,修改了指向的地址

常量指针,指向常量的指针,指针所指向的地址的内容不能改变,
但是指针本身不是常量,可以修改指向地址,进而指向另一个常量。
const int* num_2;
num_2 = &a; // *num_2等于9
num_2 = &b; // *num_2等于8
*num_2 = 99; //error,修改了指向地址的内容

猜你喜欢

转载自blog.csdn.net/shidamowang/article/details/80279228
今日推荐