函数指针、指针函数类

来源:互联网 发布:域名对应多个ip 编辑:程序博客网 时间:2024/04/29 09:18

函数指针

例:
type (*func)(type &,type &)
  该语句声明了一个指针func,它指向了一个函数,这个函数带有了2个type型参数并返回一个type的值。
p.s. type类型可以被看成是int啊或者是floast等类型。

=============注意项==============

1.一个指向函数的指针必须确保该函数被定义且分配了内存,否则它将指向一个空地址,这是大忌!

2.特别注意第一个括号的位置。如果我们不写括号,如下:

type *func(type ,type)

  这就不是一个指向函数的指针了,而是声明了一个函数,该函数返回一个type类型的指针 

1.声明函数指针时,其返回值,参数个数,参数类型应该与需要它指向的函数保持一致;否则,编译器会报错,无法从“!@¥!”转换到“#!@#!@”;

2.利用函数指针只想某个函数的时候,我们只用,也只能给出该函数的函数名,不能把参数一并给出了。

函数指针

函数指针
1. 定义:
char * (*fun)(int a,int b);
第一个括号前面的表示的是函数的返回值类型,第一个括号里面内容是这个指针名字*p,第二个括号里面内容是函数的参数的类型。
2. 使用:
char *(*fun)(int a,int b);
fun = &Myfun; //这里的Myfun是一个已经定义好的函数名字,&可以不要
(*fun)(3,5); //要注意这里的(),因为如果不加左边的括号会优先fun(),而不是*fun。
//也可以fun(3,5);的格式

int *f(char *)  f为函数类型(后面紧跟()),后面的char *表示函数的形参为char *类型,前面的int *表示函数的返回值为int *

指针数组和数组指针

  • 指针数组: 首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。
  • 数组指针: 首先它是一个指针,它指向一个数组。在 32 位系统下永远是占 4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。

    int p[4]; 一个指针数组,因为[]优先级高于,先定义为一个有4个元素的数组,int *修饰的是这个数组元素的类型
    int (*p)[4];一个数组指针,先定义为了一个指针,指针指向一个4个int数据的数组

0 0
原创粉丝点击