1.指针基本概念
- 指针是一个用来存放地址的变量
- 指针的大小为固定的4个字节(32位)或8个字节(64位)
- 指针的类型决定了指针 ± 整数的步长,以及解引用的权限
- 指针的运算:指针 ± 整数,指针 - 指针,指针关系运算
2.字符指针
char* ps = "hello!"
"hello!" 是常量字符串,不可修改
ps 中存的是其首元素 'h' 的地址
3.指针数组
存放指针的数组
int a[]={1,2,3,4,5};
int b[]={2,3,4,5,6};
int c[]={3,4,5,6,7};
int* arr[3]={a,b,c};
4.数组指针
指向数组的指针
int arr[10]={1,2,3,4,5};
int (*parr)[10] = &arr;
对 parr 解引用拿到整个数组,相当于数组名 arr
数组指针数组
int(*parr1[10])[5];
5.函数指针
存放函数地址的指针(函数名本身也是地址)
int Add(int x, int y);
int (*pf)(int,int) = &Add;
pf==*pf==Add==&Add
6.函数指针数组
int (*pfarr[2])(int, int) = {Add, Sub};
数组成员指向的函数都是相同类型