重点:学习指针,数组,函数的混合时,我们要有类比思想,由同类型的简单类比到困难;并且学习指针,数组,函数的混合时,我们要搞清楚一个指针的类型是什么,一个函数的类型是什么,一个数组的类型是什么
1.指针
(整型指针) int a = 1
int(*p) = &a
(数组指针) int arr[2] = { 1, 2 } int(*p)[2] = arr
(函数指针) void Add (int a , int b) void (*p) (int a , int b) = Add
-
(*p)代表变量p是指针,(*p)再加上指向的类型
-
数组的类型:int arr[2] = { 1, 2 } int(*p) [2] = arr,int arr[2] = { 1, 2 }中的arr我们可以自定义,不算数组类型
-
函数的类型:int Add (int a , int b) int (*p) (int a , int b) = Add
2.数组
(整型数组)int arr[2] = { 1, 2 }
(整型指针数组)int a = 0 int b = 1 int* parr[2] = { &a , &b }
(字符指针数组)char ch1 = ' i ' char ch2 = ' j ' char* pch[2] = { &ch1 , &ch2 }
(函数指针数组)int Add (int a , int b) int Sub (int a , int b) int (*) funp[2] (int a , int b)
-
数组名arr[ ] + 数组内存放的类型
-
int(*p)[2] 和 int* p[2],第一个为指针数组,第二个为数组指针
-
函数指针数组:先定义数组名funp[ ] + 指向类型: int (*) (int a , int b),最后 int (*) funp[2] (int a , int b)
3.函数
int Add (int a , int b) void Test ( int*p)
函数类型:
int Add
(int a , int b)
void Test
( int*p)
4.总结
一个数组的类型是去掉我们自定义名字后剩下的部分;一个函数的类型也是去掉我们自定义名字后剩余的部分。