1,int a; 整型变量
- 整型变量,存放整型数的变量
- 内存中开辟了一个int类型大小的空间, 即4个字节 ,然后让a指向这块空间
2, int *a; 一级指针
- 指针变量,存放指针的变量
- 一个指向int的指针变量,可存放一个int数据的地址
3, int **a; 二级指针
- 一个指向指针的指针,它指向的指针指向一个int类型数据
- 存放的是int类型数据的地址的地址
4,int a[10]; 整型数组
- 内存中一串连续的空间,存放int 类型的数据或对象的集合,
- 连续分配10个 int大小的地址空间,里面放int类型的数据
5,int *a[10]; 指针数组
- 首先它是一个数组,数组的每一个元素都存放着一个地址
- 也是连续分配10个 int大小的地址空间,里面放int类型的指针
6,int (*a)[10]; 数组指针
- 首先它是一个指针,它指向一个数组,数组的每一个元素可存放一个int类型数据
- 一个指向有10 int类型数据数组的指针
7,int (*a)(int) 函数指针
- 该指针的地址指向了一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int,所以它是指向函数的指针
- 一个指向函数的指针,该函数有一个 int类型数据参数并返回一个 int类型数据
8,int *a(int) 指针函数
- 本质是一个函数,该函数带有一个int 类型数据参数,并且该函数的返回值是一个int 指针
- 简单来说就是返回指针类型的函数
9,int (*a[10])(int); 函数指针数组
- 一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数
10,int (**a)[10];
- 指向指针的指针,被指向的指针指向一个有10个整形数的数组
11,int *(*a)[10];
- 指向数组的指针,该数组有10个整形指针
12,int(*(*a))(int,int)(int)
- 一个函数的指针,指向的函的类型是有两个整形参数并且返回一个函数指的函数,返回的函数指计指向有一个整形参数且返回整形数的函数