当前位置: 首页 > news >正文

C语言基础知识之函数指针和指针函数

函数指针和指针函数

  • 函数指针和指针函数
    • 指向函数的指针
    • 返回指针值的函数
    • 指针函数和函数指针的区别
  • 问题1_1
    • 代码1_1
    • 结果1_1

函数指针和指针函数

指向函数的指针

        用函数指针变量调用函数
        可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数的入口地址就称为函数的指针。
        函数指针变量常用的用途之一是把指针作为参数传递到其他函数。
类型名 ( ∗ 函数名 ) (参数表列) ; 类型名 (*函数名)(参数表列); 类型名(函数名)(参数表列);
        例如:
i n t ( ∗ a ) ( i n t x , i n t y ) ; int\ (*\ a)(int\ x, int\ y); int ( a)(int x,int y);

返回指针值的函数

        一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。这种带回指针值的函数,一般定义形式为:
类型名 ∗ 函数名(参数表列) ; 类型名 *函数名(参数表列); 类型名函数名(参数表列);
        例如:
i n t ∗ a ( i n t x , i n t y ) ; int\ *\ a(int\ x, int\ y); int  a(int x,int y);

指针函数和函数指针的区别

        这两个概念都是简称:
        指针函数是指带指针的函数,即本质是一个函数。
        函数指针是指向函数的指针变量,因而函数指针本身首先应是指针变量,只不过该指针变量指向函数。

问题1_1

        函数 f u n fun fun的功能是:用函数指针指向要调用的函数,并进行调用。

代码1_1

#include<stdio.h>double f1(double x){return x*x;
}double f2(double x, double y){return x*y;
}double fun(double a, double b){double  (*f)();double r1, r2;f = f1;r1 = f(a);f = f2;r2 = (*f)(a, b);return r1+r2;
}void main(void){double x1=5, x2=3, r;r = fun(x1, x2);printf("\nx1  = %f, x2 = %f, x1*x1 + x1*x2 = %f\n", x1, x2, r);
}

结果1_1

Result_1_1

相关文章:

C语言基础知识之函数指针和指针函数

函数指针和指针函数 函数指针和指针函数指向函数的指针返回指针值的函数指针函数和函数指针的区别 问题1_1代码1_1结果1_1 函数指针和指针函数 指向函数的指针 用函数指针变量调用函数 可以用指针变量指向整型变量、字符串、数组&#xff0c;也可以指向一个函数。一个…...

【Unity】web gl inputFied 中文输入,同时支持TextMeshInputFied,支持全屏

同时支持TextMeshInputFied&#xff0c;支持全屏。 使用github包【WebGLInput】&#xff1a;https://github.com/kou-yeung/WebGLInput 需要资源的在这里也可以下载 https://download.csdn.net/download/weixin_46472622/89600795 用于unity web gl 中文输入&#xff0c;只需…...

vue3+vite全局引入less变量和函数

需要在vite配置 plugins: [css: {preprocessorOptions: {less: {additionalData: import "./src/styles/variables.module.less"; import "./src/views/Visualization/component/ViewportCom/px2viewport.less";,javascriptEnabled: true}}}, ]多个文件按…...

H81002S 1.7mm网络变压器:BMS汽车蓝牙接收器中的超薄共模电感科技

华强盛导读&#xff1a;在当今这个日新月异的汽车科技领域&#xff0c;每一处细节都蕴含着创新与突破。作为电动汽车心脏的电池管理系统&#xff08;BMS&#xff09;&#xff0c;其高效稳定的运行不仅关乎续航与安全&#xff0c;更是智能化驾驶体验的基石。而在这背后&#xff…...

C语言.回调函数

回调函数 回调函数也是一个函数。与一般函数直接调用区别在于&#xff0c;使用回调函数的过程&#xff0c;是一个函数将另一个函数作为参数调用。而被用来调用的那个函数&#xff0c;就是回调函数。 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地…...

《从零开始:使用Python构建简单Web爬虫》

前言 随着互联网信息的爆炸性增长&#xff0c;如何高效地获取和处理这些数据变得越来越重要。Web爬虫作为一种自动化工具&#xff0c;可以帮助我们快速抓取所需的网页内容。本文将介绍如何使用Python编写一个简单的Web爬虫&#xff0c;并通过实例演示其基本用法。 准备工作 …...

最新个人免签约支付系统源码|PHP源码 | 码支付系统 | ThinkPHP6框架 | 开源

源码介绍&#xff1a; 这个最新的个人专用免签约支付系统源码&#xff01;是PHP源码写的哦&#xff0c;而且是用ThinkPHP6框架开发的&#xff0c;完全开源的码支付系统。 这个系统适合个人用户使用&#xff0c;作为收款的免签约解决方案。它还加入了监控端&#xff0c;可以拒…...

The Llama 3 Herd of Models 第4部分后训练的全文

Llama 3前三部分包括介绍、总体概述和预训练https://blog.csdn.net/qq_51570094/article/details/140682445?spm=1001.2014.3001.5501 4 Post-Training 后训练 我们通过应用几轮后训练6或将模型与人类反馈对齐来生成对齐的Llama 3模型(Ouyang等人,2022;Rafailov等人,2024)在…...

MongoDB性能调优

文章目录 MongoDB性能调优MongoDB性能不佳原因影响MongoDB性能的因素MongoDB性能监控工具mongostatmongotopProfiler模块db.currentOp() MongoDB性能调优 MongoDB性能不佳原因 慢查询阻塞等待硬件资源不足 1,2通常是因为模型/索引设计不佳导致的 排查思路&#xff1a;按1-2…...

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数)

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件&#xff08;qInstallMessageHandler回调函数&#xff09; 文章目录 Log输出方式qInstallMessageHandler回调函数线程安全textEdit控件附录&#xff1a;C语言到C的入门知识点&#xff08;主要适用于C语言精通到Qt的C开发…...

【JavaEE精炼宝库】 网络编程套接字——UDP业务逻辑 | TCP流套接字编程及业务逻辑实现

文章目录 一、UDP业务逻辑实现二、TCP流套接字编程2.1 API 介绍&#xff1a;2.1.1 ServerSocket&#xff1a;2.1.2 Socket&#xff1a; 2.2 Java流套接字通信模型&#xff1a;2.3 代码示例&#xff1a;2.3.1 TCP Echo Server&#xff1a;2.3.2 TCP Echo Client&#xff1a;2.3.…...

前端过渡动画

前端过渡动画 vue3 1、组件进入视口时向上移动且渐显 1、创建js文件addViewportEffect.js function slideDownEffect(element) {console.log("执行");element.style.transform translateY(0);element.style.opacity 1; }/*** 添加视口效果到指定的类名元素上。…...

actual combat 38 ——vue

vue-cli脚手架 创建命令&#xff1a;vue create 项目名称 eslint 如何关闭&#xff1f; vue.config.js文件中加 module.exports {lintOnSave: false }文件全代码&#xff1a; const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpile…...

测试面试宝典(四十七)— 功能测试用例一般包含哪些内容

首先&#xff0c;明确测试用例的编号和名称&#xff0c;以便于识别和管理。 其次&#xff0c;详细描述测试的目标和背景&#xff0c;让其他人能够清楚了解该测试用例的目的和适用场景。 接着是测试的步骤&#xff0c;需要清晰、准确地列出每一个操作步骤&#xff0c;包括输入…...

rust_mac环境安装

在 macOS 上安装 Rust 很简单。你可以使用 Rust 提供的安装工具 rustup。下面是安装步骤&#xff1a; 打开终端。 运行以下命令以安装 rustup 和 Rust&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh按照提示进行操作&#xff1a; 这个命令将下载并…...

【前端面试】七、算法-递归

常考算法 排序算法&#xff1a;快速排序、归并排序、堆排序等。 查找算法&#xff1a;二分查找、哈希表查找等。 动态规划&#xff1a;解决最优化问题&#xff0c;如斐波那契数列、最长公共子序列等。 图论算法&#xff1a;最短路径&#xff08;Dijkstra、Floyd-Warshall&am…...

CmsEasy逻辑漏洞--零元购

CmsEasy逻辑漏洞--零元购 选择购买MackBook 购买成功后会员中心发现多出8100快钱 然后就可以正常购买了...

Linux 内核源码分析---I/O 体系结构与访问设备

I/O 体系结构 与外设的通信通常称之为输入输出&#xff0c;一般都缩写为I/O。 在实现外设的I/O时&#xff0c;内核必须处理3个可能出现的问题&#xff1a; &#xff08;1&#xff09;必须根据具体的设备类型和模型&#xff0c;使用各种方法对硬件寻址&#xff1b; &#xff08…...

在cPanelWHM中如何重置 MySQL 用户帐户密码

更改MySQL用户账户密码非常简单。服务器管理员可以在WHM中编辑任何MySQL用户的帐户。cPanel用户可以编辑其帐户管理的数据库的密码。 在WHM中更改MySQL用户帐户密码 打开WHM&#xff0c;在侧边菜单中的SQL服务下选择“Change MySQLUser Password”。Hostease的服务器产品提供稳…...

软件测试基础1--功能测试

1、什么是软件测试&#xff1f; 软件是控制计算机硬件运行的工具。 软件测试&#xff1a;使用技术手段验证软件是否满足使用需求&#xff0c;为了发现软件功能和需求不相符合的地方&#xff0c;或者寻找实际输出和预期输出之间的差异。 软件测试的目的&#xff1a;减少软件缺陷…...

《计算机网络》(第8版)第9章 无线网络和移动网络 复习笔记

第 9 章 无线网络和移动网络 一、无线局域网 WLAN 1 无线局域网的组成 无线局域网提供移动接入的功能&#xff0c;可分为两大类&#xff1a;有固定基础设施的和无固定基础设 施的。 &#xff08;1&#xff09;IEEE 802.11 IEEE 802.11 是无线以太网的标准&#xff0c;是有固定…...

非负数、0和正整数 限制最大值且保留两位小数在elementpuls表单中正则验证

一、结构 <el-form-item label"单价&#xff1a;" prop"price"><el-inputv-model.trim"formData.price"placeholder"请输入"blur"formMethod.fixTwo"><template #append>(元)</template></el-i…...

Java多线程-----定时器(Timer)及其实现

目录 一.定时器简介&#xff1a; 二.定时器的构造方法与常见方法&#xff1a; 三.定时器的模拟实现&#xff1a; 思路分析&#xff1a; 代码实现&#xff1a; 在开发中&#xff0c;我们经常需要一些周期性的操作&#xff0c;例如每隔几分钟就进行某一项操作&#xff0c;这…...

【Linux修行路】进度条小程序

目录 ⛳️推荐 一、预备知识 1.1 回车换行 1.2 缓冲区 二、倒计时 2.1 注意事项 三、进度条 3.1 源代码 3.2 代码分析 3.2 实际使用场景 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…...

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基…...

【探索Linux】P.44(数据链路层 —— 以太网的帧格式 | MAC地址 | MTU | ARP协议)

阅读导航 引言一、认识以太网二、以太网的帧格式三、MAC地址四、MTU五、ARP协议温馨提示 引言 在深入探讨了网络层的IP协议之后&#xff0c;本文将带领读者进一步深入网络的底层——数据链路层。我们将详细解析以太网的帧格式&#xff0c;这是数据链路层传输数据的基本单元&am…...

<数据集>航拍行人识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7482张 标注数量(xml文件个数)&#xff1a;7482 标注数量(txt文件个数)&#xff1a;7482 标注类别数&#xff1a;1 标注类别名称&#xff1a;[people, pedestrian] 序号类别名称图片数框数1people5226385602pedes…...

在 Windows 10 系统上部署 Medusa

先决条件 在安装 Medusa 之前&#xff0c;你需要确保已经安装了以下工具&#xff1a; Node.js: Medusa 需要 Node.js v16 或更高版本。你可以从 Node.js 官网下载并安装。Git: Git 用于从 GitHub 获取 Medusa 的源代码。你可以从 Git 官网下载并安装。PostgreSQL: Medusa 使用…...

Linux进程 (冯诺依曼体结构 管理 PCB 进程状态 僵尸进程 孤儿进程 运行阻塞挂起状态 进程优先级)

文章目录 一.冯诺依曼体系结构冯诺依曼结构能干什么&#xff1f; 二.操作系统概念结构图(不完整)为什么要有操作系统&#xff1f; 尝试理解操作系统管理结构图(完整)总结&#xff1a; 三.进程进程是什么&#xff1f;PCB为什么要有PCB&#xff1f; Linux中的PCB进程的task_struc…...

《LlamaIndex 之美》-01-LLM、Prompt、Embedding基础入门

在基于数据构建任何 LLM 应用程序时&#xff0c;选择合适的大型语言模型 &#xff08;LLM&#xff09; 是您需要考虑的首要步骤之一。 LLM 是 LlamaIndex 的核心组成部分。它们可以作为独立模块使用&#xff0c;也可以插入到其他核心 LlamaIndex 模块&#xff08;索引、检索器…...

网站图片如何做超链接/小程序推广引流

群里有童鞋问&#xff0c;想要根据用户分组&#xff0c;以该用户的下单时间为降序&#xff0c;提取所有用户的第二个订单信息。这属于分组排序&#xff0c;在Oracle有内置函数可以实现&#xff0c;而在mysql&#xff0c;做起来比较蛋疼。我提供一种方法供参考CREATE TABLE user…...

设计素材网站会员/成人短期电脑培训班学费

一.内置运算符 1关系运算符 2.算术运算符 3.逻辑运算符 4.复杂类型函数 5.复杂类型函数应用 转载于:https://www.cnblogs.com/yszd/p/11128683.html...

怎么注册自己网站吗/今日国际新闻最新消息

前言&#xff1a; 都说程序员有三宝&#xff1a;人傻&#xff0c;钱多&#xff0c;死得早。博主身边的程序“猿”一大半应了这三宝&#xff0c;这从侧面说明了一个问题&#xff0c;只有理性是过不好日子的。朋友们应该把工作与生活分开&#xff0c;让生活变得感性&#xff0c;让…...

济南行业网站开发/百度惠生活商家怎么入驻

#-*- codeing utf-8 -*- #Time :2021/5/17 10:33 #Author :Onion #File :Convolution.py #Software :PyCharm# 卷积神经网络Demo # 步骤 # 1&#xff1a;定义输入变量 # 2&#xff1a;定义卷积核变量 # 3&#xff1a;定义卷积操作 # 4&#xff1a;运行卷积操作import tensorfl…...

武汉专业做网站的公司有哪些/网站制作的流程

1. 背景 介绍了如何利用Kafka Streams找出并过滤掉实时流中那些重复的消息。本篇将介绍如何对消息中特定数据进行求和汇总。 2. 功能演示说明 假设我们要执行汇总求和的事件格式如下&#xff1a; {"title":"Die Hard","sale_ts":"2019-…...

临沂哪家做网站最好/关键词搜索名词解释

分析&#xff1a; 根据欧拉函数的那个性质 if(p是质数){if(i % p 0) f[i * p] f[i] * p;else f[i * p] f[i] * (p - 1);}每次区间乘的那个数小于等于100&#xff0c;所以我们可以考虑把100以内的数质因数分解&#xff0c;区间乘100相当于区间乘两个2和两个5&#xff0c;但是…...