【学习笔记】【C语言】指向函数的指针
每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了。
- #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语言】指向函数的指针的更多相关文章
- C语言——指向函数的指针
转载自:http://www.cnblogs.com/liangyan19910818/archive/2011/08/19/2145270.html C语言——指向函数的指针 函数类型 (* 函数指 ...
- C语言 指向函数的指针
#include <stdio.h> int sum(int a, int b) { int c = a + b; printf("%d + %d = %d\n", a ...
- C语言指向函数的指针
定义形式:类型 (*指针变量名)(参数列表); 例如:int (*p)(int i,int j); 在这里 int是函数的返回类型,*p是指向函数的指针,(int i,int j);是函数的参数 注意 ...
- C++学习笔记31,指向引用的指针(3)
我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ...
- C++学习笔记:指向函数的指针
#include <stdio.h> int sum(int a, int b) { return a+b; } int minus(int a, int b) { return a-b; ...
- 【C语言】14-返回指针的函数与指向函数的指针
前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如 ...
- 【C语言】-返回指针的函数与指向函数的指针
本文目录 前言 一.返回指针的函数 二.指向函数的指针 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.i ...
- C语言基础语法之指向函数的指针
指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...
- C语言中 指向函数的指针 简介
引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* ...
随机推荐
- 全面整理的C++面试题
C++面试题 1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的. private 也被集成,仅仅事派生类没有 ...
- Android游戏开发:物理游戏之重力系统开发--圆形自由落体Demo
本节为大家提供有关物理游戏的知识,讲解了一个简单的圆形自由落体Demo的编写.. Java代码 package com.himi; import java.util.Random; import ja ...
- iOS开发——多线程OC篇&(十)多线程NSOperation基本使用
NSOperation基本操作 一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最⼤大并发数的 ...
- Network Link Conditioner模拟不同网络环境
在Xcode4.1中有一个工具叫Network Link Conditioner,可以让用户模拟不同的网络连接和带宽,可供Mac和iOS开发者测试自己的程序在不同网络环境下的表现. 在Xcode4.3 ...
- Golang学习 - sync 包
------------------------------------------------------------ 临时对象池 Pool 用于存储临时对象,它将使用完毕的对象存入对象池中,在需要 ...
- C/C++ unit testing tools (39 found)---reference
http://www.opensourcetesting.org/unit_c.php API Sanity AutoTest Description: An automatic generator ...
- 关于yarn的spark配置属性
spark1.2.0 These are configs that are specific to Spark on YARN Property Name Default Meaning spark ...
- WinForm实现跨进程通信的方法
public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...
- iOS - 混合开发
5.oc 与 js 混合开发 PhoneGap 专门做混合开发的,已经被另一个公司收购. WebViewJavascriptBridge 国内用的比较多 混合开发的好处:跨平台性.H5开发的时间成本, ...
- iphone 手机屏幕和UIView和UIWindowde 的主要的区别
在iPhone5之前的iphone1,2,3,3s,4,4s都是320x480 iPhone5和5s的屏幕是320x568 iphone6的屏幕是375x667 iPhone6Plus的414x736 ...