区分C语言中的指针函数和函数指针
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语言中的指针函数和函数指针的更多相关文章
- C语言中常用的字符串处理函数总结
C语言中字符串处理函数备注 此文仅用于自己研究和记录 字符串处理函数 1. char *gets(char *s); #include<stdio.h> 功能: 从标准输入读入字符,并保存 ...
- Verilog语言中的系统任务和系统函数
Verilog语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在Testbench仿真中使用的,使我们更方便的进行验证. `timescal ...
- 【linux C】C语言中常用的几个函数的总结【二】
3.fgets 虽然用 gets() 时有空格也可以直接输入,但是 gets() 有一个非常大的缺陷,即它不检查预留存储区是否能够容纳实际输入的数据,换句话说,如果输入的字符数目大于数组的长度,get ...
- 关于C语言中的结构体内嵌函数(转)
https://blog.csdn.net/qq_39490500/article/details/80457831 看门见山 1.内嵌函数定义举例:经过真实测试 在函数中声明定义结构体 #inclu ...
- c语言中的文件格式化读写函数fscanf和fprintf函数
很多时候我们需要写入数据到文件中时都觉得很困扰,因为格式乱七八槽的,可读性太差了,于是我们就想有没有什么函数可以格式化的从文件中输入和输出呢,还真有.下面我将讲解一下fscanf和fprintf的强大 ...
- C语言中常用的字符串操作函数
程序开头要声明 #include <string.h> 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char ...
- 【linux C】C语言中常用的几个函数的总结【一】
1.memset函数 定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构.在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”.每种类型的变量都有各自的 ...
- C 语言中的 feof()函数
功能: feof 是 C 语言标准库函数函数,其原型在 stdio.h 中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0,文件结束符只能被 clearerr() 清除. 用法: ...
- 关于c语言中的字符数组和字符串指针
先看代码: #include <stdio.h> int main(void) { ] = "; char * strTmp = "abcdefg"; int ...
随机推荐
- mybatis的嵌套查询与嵌套结果查询的不同
原文:https://blog.csdn.net/qq_39706071/article/details/85156840 实体类: 嵌套查询mapper方法:嵌套查询的弊端:即嵌套查询的N+1问题尽 ...
- Ngnix 配置文件快速入门
转自https://www.cnblogs.com/knowledgesea/p/5175711.html 其实也没什么好说的,我想大部分人也不会在意nginx的实现原理啥的.服务器要部署的时候,把n ...
- http 的8中请求方式:
http 的8中请求方式: 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性 2.HEAD 向服务器索与GET请求相一致 ...
- c++虚函数和虚继承
关键字virtual用于父类方法,如果传了一个子类对象,并且子类重写了父类的这个virtual方法,就会调用子类的方法.传谁就调用谁,这个就是多态.#include<iostream> u ...
- 个人项目-Wc-Java
一.Github项目地址: https://github.com/Heiofungfming/xiaoming01 二.PSP表格 PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的 ...
- 05【掌握】 SpringBoot 清空Redis所有缓存
package top.yangbuyi.system.controller; import org.springframework.beans.factory.annotation.Autowire ...
- HTML&CSS面试高频考点(三)
11. CSS隐藏元素的方式 /*占据空间,无法点击*/ visibility: hidden; position: relative; top: -999em; /* 不占据空间,无法点击 */ p ...
- JS中字符串和数组的相互转化
题目:利用var s1=prompt("请输入任意的字符串:") ,可以获取用户输入的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出. 思路:字符串对象的方法中并没有实 ...
- 改变securecrt背景色
下拉菜单中点击 Session Options--->
- js 字符串排序
this.regionsList = result.sort((a, b) => a.warehouseAreaCode.localeCompare(b.warehouseAreaCode)); ...