1.指针函数:

类型说明符 *函数名(形参表)

{

 ..........   /*函数体*/

..........     /*函数体*/

}

其中函数名之前加了"*"号表明,这是一个指针型函数

2.函数指针:

类型说明符 (*指针变量名)();

例如:int (*pf)(int );

3.指针函数:例子

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
/*
char *day_name(int n);
int main()
{
int i;
char *day_name(int n);//定义函数返回值是指针类型的函数
printf("input Day No:\n");
scanf("%d",&i);
if(i < 0 ) exit(1);
printf("Day No:%2d-->%s\n",i,day_name(i));//调用指针函数
return 0;
}
char *day_name(int n){
//静态指针数组
static char *name[] = {
"Illegal day",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
};
return((n <1 || n>7 )? name[0]:name[n]);
}
*/
char *day_name(char *name[],int n)
{
char *pp1,*pp2;
pp1 = *name;
pp2 = *(name + n);
return ((n< || n>)? pp1:pp2);
}
int main()
{
static char *name[] = {
"Illegal day",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
};
char *ps;
int i;
char *day_name(char *name[],int n);
printf("input Day No:\n");
scanf("%d",&i);
if(i < ) exit();
ps = day_name(name,i);
printf("Day No:%2d-->%s\n",i,ps);
return ;
}

4.函数指针:例子

int max(int a,int b)
{
if(a>b)return a;
else return b;
}
main()
{
int max(int a,int b);
int(*pmax)(int, int);//定义参数列表为(int,int)的函数指针
int x,y,z;
pmax=max;//将函数指针pmax ->指向函数max 的函数入口地址(首地址)
printf("input two numbers:\n"); scanf("%d%d",&x,&y); z=(*pmax)(x,y); //等同于调用函数max(x,y); printf("maxmum=%d",z);
}

5.总结

函数指针,是一种指针,指针指向的是函数的首地址,指向的类型是函数。

指针函数,是一种函数,函数的返回值类型是指针类型的函数。

区分C语言中的指针函数和函数指针的更多相关文章

  1. C语言中常用的字符串处理函数总结

    C语言中字符串处理函数备注 此文仅用于自己研究和记录 字符串处理函数 1. char *gets(char *s); #include<stdio.h> 功能: 从标准输入读入字符,并保存 ...

  2. Verilog语言中的系统任务和系统函数

    Verilog语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在Testbench仿真中使用的,使我们更方便的进行验证. `timescal ...

  3. 【linux C】C语言中常用的几个函数的总结【二】

    3.fgets 虽然用 gets() 时有空格也可以直接输入,但是 gets() 有一个非常大的缺陷,即它不检查预留存储区是否能够容纳实际输入的数据,换句话说,如果输入的字符数目大于数组的长度,get ...

  4. 关于C语言中的结构体内嵌函数(转)

    https://blog.csdn.net/qq_39490500/article/details/80457831 看门见山 1.内嵌函数定义举例:经过真实测试 在函数中声明定义结构体 #inclu ...

  5. c语言中的文件格式化读写函数fscanf和fprintf函数

    很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...

  6. C语言中常用的字符串操作函数

    程序开头要声明 #include <string.h> 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char ...

  7. 【linux C】C语言中常用的几个函数的总结【一】

    1.memset函数 定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构.在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”.每种类型的变量都有各自的 ...

  8. C 语言中的 feof()函数

    功能: feof 是 C 语言标准库函数函数,其原型在 stdio.h 中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0,文件结束符只能被 clearerr() 清除. 用法: ...

  9. 关于c语言中的字符数组和字符串指针

    先看代码: #include <stdio.h> int main(void) { ] = "; char * strTmp = "abcdefg"; int ...

随机推荐

  1. Python itchat.get_chatrooms() 抓取群聊不全的问题

    1 rooms = itchat.get_chatrooms() 2 f = codecs.open("3.txt","w","utf-8" ...

  2. package.json 文件说明:

    package.json 文件属性说明: name - 包名. version - 包的版本号. description - 包的描述. homepage - 包的官网 url . author - ...

  3. 有趣的条漫版 HashMap,25岁大爷都能看懂

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  4. 高性能IO —— Reactor(反应器)模式

    讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty.Redis在使用的IO模式, 为什么需要这种模式,它是如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个 ...

  5. 入门大数据---Spark开发环境搭建

    一.安装Spark 1.1 下载并解压 官方下载地址:http://spark.apache.org/downloads.html ,选择 Spark 版本和对应的 Hadoop 版本后再下载: 解压 ...

  6. 宝贝,来,满足你,二哥告诉你学 Java 应该买什么书?

    (这次的标题是不是有点皮,对模仿好朋友 guide 哥的,我也要皮一皮) 高尔基说过,对吧?宝贝们,"书籍是人类进步的阶梯",不管学什么,买几本心仪的书读一读,帮助还是非常大的.尽 ...

  7. 记一次发布/更新npm包的过程及包版本管理

    您可以发布包含package.json文件的任何目录.这里如何首次发布程序包以及如何在以后更新程序包. 如何发布包 制备 了解npm政策 在开始之前,如果您对网站礼仪,命名,许可或其他指南有疑问,最好 ...

  8. 机器学习之KNN算法(分类)

    KNN算法是解决分类问题的最简单的算法.同时也是最常用的算法.KNN算法也可以称作k近邻算法,是指K个最近的数据集,属于监督学习算法. 开发流程: 1.加载数据,加载成特征矩阵X与目标向量Y. 2.给 ...

  9. 如何解决TOP-K问题

    前言:最近在开发一个功能:动态展示的订单数量排名前10的城市,这是一个典型的Top-k问题,其中k=10,也就是说找到一个集合中的前10名.实际生活中Top-K的问题非常广泛,比如:微博热搜的前100 ...

  10. java简介&&变量

    Day01 简介 数据 1.数据大体分为两类:基本类型和引用类型 2.基本类型的数据分为四类八种,四类为整型,浮点,布尔,字符 3.Long类型的数据超过int范围要在之后面加个L,不加L是整型会进行 ...