基础知识
(1)指针数组:int *a[10]
理解:a和[]先结合,构成数组a[10](同时说明这变量的本质是数组,所以最终应该叫做**数组),紧接着与*号结合说明这个数组中10个元素都是指针,且指向的是int型变量。因此他是一个指针数组。
(2)数组指针:int (*a)[10]
理解:a首先和*号结合表明变量a是一个指针变量(本质就是个指针,所以最终应该叫**指针),紧接着和[]结合,表明这个指针变量指向一个数组,这个数组由10个int类型元素构成。所以名称为数组指针。
(3)函数指针
譬如函数为 void func(void);那么函数指针为void (*p)(void); 指针变量p 变量p的类型为void (*)(void); 调用方式为*p
typedef与结构体
(1)结构体在使用时都是先定义结构体类型,再用结构体类型去定义变量。
(2)C语言语法规定,结构体类型使用时必须是struct 结构体类型名 结构体变量名;这样的方式来定义变量。
(3)使用typedef一次定义2个类型,分别是结构体变量类型,和结构体变量指针类型。
typedef struct teacher
{
char name[20];
int age;
int mager;
}teacher, *pTeacher;
typedef与const
(1)typedef int *PINT;const PINT p2; 相当于是int *const p2;
(2)typedef int *PINT;PINT const p2;