PoEdu - C提高班 【Po学校】-Lesson08 -指针专题(二):数组指针&指针数组&函数指针- 课堂笔记

1--> 数组指针

1.0.0  数组指针指向的是一个数组类型,其格式为:元素类型 + 数组大小:申明  typedef int(INT10)[10];那么  INT10就是一个数组。

1.0.1  示例:int(*parray)[10] = &array;

 

 2-->  指针数组

2.0  指针数组  里面全部是一根根的指针

3-->    字符串和指针的关系

3.0.1  字符串中几个容易犯错的示例

 

 指针数组的参数传递

 指针数组作为参数传递时:

指针数组的类型:

 4--> main 函数的详解

 

 

5-->  函数的类型

5.0.0  每一个函数都会产生一个函数指针,如下图中pFoo就是Foo()函数的指针

 

5.0.1  有一个函数指针,那么就一定有一个函数类型与之匹配。

 

5.0.2  函数类型由几个部分组成:  返回值  +  参数列表  (参数列表中包含: 参数类型,参数个数,参数顺序)

 

5.0.3  上图中函数的类型是 int(*pFoo)(int,int) = Foo;

5.0.4  再看一个函数的类型

5.0.5  上图中,Foo与下一行中的&Foo2是一样的。

5.0.6  另外一种用typedef申明和定义函数类型的方法:

 5.0.7  为什么要使用函数类型,要如此定义呢,是为了实现“回调函数”。以后在windows编程中,会大量的使用回调函数。

5.0.8  函数的指针,就是指向函数类型的指针。

6-->   复习小节

7-->   作业

//float Foo(int num, float num); //指针类型
// 答:指针类型为 float (*)(int,int) 如示例 float (*pFoo)(int,int)= Foo;
//
//int (*parray)[10] //数组原型
// 答:数组原型为 int array[10]= {0};
//
//char*(*parray)[10] //数组原型
// 答:char *array[10] = {"I","love","Mark"};
//
//int array[10][20] //数组类型
// 答:数组类型为 int (name)[10][20]
//
//char *array[10] //数组类型
// 答:数组类型为 char *(name)[10]
//
//void Foo(void) //指针类型
// 答:指针类型为 void(*Foo)()
//
//int*(Foo)() //函数原型
// 答:函数原型为 int* Foo();
//
//void*(Foo)(int*,void*) //函数原型
// 答:函数原形为 void* Foo(int* num, void* v);

posted on 2017-02-16 17:21  zzdoit  阅读(112)  评论(0编辑  收藏  举报

导航