函数内部数据是地址需要传递给调用函数,返回的当然是指针了!当然,这个返回地址也可以通过函数参数返回!
函数的参数是指针可以输出函数多个结果,返回值本身就是返回数据,什么时候需要返回指针呢?
一般形式
类型定义符 *指针型函数名(形参列表)
{
函数体;
}
"类型定义符"是指返回指针指向的数据类型。
一 分析输入输出与算法
例:实现匹配函数match:程序在输入字符串中查找一个给定的字符,如果找到,则从该字符开始打印余下的子字符串,及该字符是字符串的第几个字符;否则输出"no match found".
分析:
(1) match 函数有2个输入参数:字符串;字符;
(2)功能:在输入字符串中查找一个给定的字符,如果找到,则从该字符开始打印余下的子字符串,及该字符是字符串的第几个字符;否则输出"no match found".
(3)问题:函数的输出是什么?打印这个功能是否应该在match函数内部完成?
输入转换为输出的算法是什么?
二 指向函数的指针(函数指针)
函数的入口地址
程序也存储在内存中,与数据一样,函数的第一条指令的地址,称为函数的入口地址;编译器将不带()的函数名解释为函数的入口地址。调用函数时,实际就是转到函数的入口地址,去执行入口地址的第一条指令。
三 函数指针
指向函数的指针简称为函数指针;
指向了函数的第一条指令的地址,即存储的是函数的入口地址;
这里可以将函数理解为一个变量,只是这个变量是一段可执行的指令,使用函数指针可以编写更通用,更灵活的程序。