每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了。

 #include <stdio.h>

 double haha(double d, char *s, int a)
{ } /*
掌握:
1.看懂语法
2.定义指向函数的指针
double (*p)(double, char *, int);
p = haha;
或者
double (*p)(double, char *, int) = haha;
3.如何间接调用函数
1> p(10.7, "jack", 10);
2> (*p)(10.7, "jack", 10);
*/ void test()
{
printf("调用了test函数\n");
} int sum(int a, int b)
{
return a + b;
} int main()
{
// 定义指针变量指向sum函数
// 左边的int:指针变量p指向的函数返回int类型的数据
// 右边的(int, int):指针变量p指向的函数有2个int类型的形参
int (*p)(int, int); p = sum; //int c = p(10, 11); //int c = (*p)(10, 11); int c = sum(, ); printf("c is %d\n", c); return ;
} void test1()
{
// (*p)是固定写法,代表指针变量p将来肯定是指向函数
// 左边的void:指针变量p指向的函数没有返回值
// 右边的():指针变量p指向的函数没有形参
void (*p)(); // 指针变量p指向了test函数
p = test; p();
//(*p)(); // 利用指针变量间接调用函数 //test(); // 直接调用函数
}
 

【学习笔记】【C语言】指向函数的指针的更多相关文章

  1. C语言——指向函数的指针

    转载自:http://www.cnblogs.com/liangyan19910818/archive/2011/08/19/2145270.html C语言——指向函数的指针 函数类型 (* 函数指 ...

  2. C语言 指向函数的指针

    #include <stdio.h> int sum(int a, int b) { int c = a + b; printf("%d + %d = %d\n", a ...

  3. C语言指向函数的指针

    定义形式:类型 (*指针变量名)(参数列表); 例如:int (*p)(int i,int j); 在这里 int是函数的返回类型,*p是指向函数的指针,(int i,int j);是函数的参数 注意 ...

  4. C++学习笔记31,指向引用的指针(3)

    我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ...

  5. C++学习笔记:指向函数的指针

    #include <stdio.h> int sum(int a, int b) { return a+b; } int minus(int a, int b) { return a-b; ...

  6. 【C语言】14-返回指针的函数与指向函数的指针

    前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如 ...

  7. 【C语言】-返回指针的函数与指向函数的指针

    本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.i ...

  8. C语言基础语法之指向函数的指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...

  9. C语言中 指向函数的指针 简介

    引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* ...

随机推荐

  1. 【开发实例】C#调用SAPI实现语音合成的两种方法

    我们都知道现在的语音合成TTS是可以通过微软的SAPI实现的,好处我就不多说了,方便而已,因为在微软的操作系统里面就自带了这个玩意,主要的方式有两种:  1.使用COM组件技术,不管是C++,C#,D ...

  2. 几种Java写webservice的比较

    Java6,Axis2.XFire.CXF 1.JWS是Java语言对WebService服务的一种实现,用来开发和发布服务.而从服务本身的角度来看JWS服务是没有语言界限的.但是Java语言为Jav ...

  3. 摘录知乎上关于android开发的话题精华

    1.初学者学习 Android 开发,有什么好网站推荐? http://www.zhihu.com/question/19611325 2.Android 开发有哪些新技术出现? http://www ...

  4. CENTOS YUM软件源

    CentOS 7.0 使用 YUM 安装 MySQL 报错 问题现象 CentOS 7.0 使用 YUM 安装 MySQL 时出现类似如下错误信息: File contains no section ...

  5. LeetCode42 Trapping Rain Water

    题目: Given n non-negative integers representing an elevation map where the width of each bar is 1, co ...

  6. Web分布式部署,跨应用程序Forms身份验证的集成方案

    最近一个项目要求进行分布式部署.保证在双十一期间系统的正常运行,虽然该系统平时访问量不是很大,但是基于业务需要,必须在至少两台服务器上部署. 该系统需要登录后才可以使用,首先需要解决分布式部署的用户状 ...

  7. ie下使用firebug

    https://getfirebug.com/firebuglite/ 是介绍firebug在别的浏览器如何使用 或者在html中引入firebug-lite.js,然后安F12 <script ...

  8. ASP.NET MVC ViewData/ViewBag 简单小结

    近期在项目中遇到一个问题,就是用ViewBag.Model存储匿名对象传递给View,但是需要根据条件给匿名对象添加属性,这个可真心不易,Google了一下发现很多方案都是动态编译神马的,感觉好高大上 ...

  9. xe5 android tts(Text To Speech)

    xe5 android  tts(Text To Speech) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转 ...

  10. FreeBSD 路由详解

    在同一个局域网上的计算机是直接连通的,但是不同的网络上的计算机并没有直接相连,只能通过一台特殊的专用计算机 -路由器来完成连通.路由器连接有多个网络界面,每一个网络界面连接到一个相应的网络上,具有一个 ...