c++/c关于函数指针
顺便提一句:指针也是一种变量类型 和 int double 这些类型是一个级别 不同的是它的值是地址
#include "stdafx.h"
#include<stdlib.h>
void visit(int n){
printf("printf argcs: %d\n",n);
}
void test(void (*fun)(int n),int j){
(*fun)(j);
}
int _tmain(int argc, _TCHAR* argv[])
{
//定义一个函数指针fun 该指针可以指向任意的void类型 参数为int类型的函数名
void (*fun)(int n);
//既然是指针当然其值只能是地址类型的 因为是函数指针所以理所当然要函数地址
fun=&visit;
//在执行语句里*的意义是取内容 所以就(*fun)<==>visit();
(*fun)(20);
//函数指针可以指向函数指针的地址(只要是个同类型的函数地址都行嘛) 这是没有问题的
//说白了 test(fun,20)<==>test(&visit,20)
test(fun,20);
//到这里估计大家都明白函数指针是怎么回事了 但还是有问题 为什么定义函数指针
//指针变量要用括号包起来 猜想下面的表达方式行不行
//这样一看你就懂了这分明就是一个返回值为void 指针类型的函数哇
#if 0
void *fun(int n);
#endif
system("pause");
return 0;
}
c++/c关于函数指针的更多相关文章
- C++虚函数和函数指针一起使用
C++虚函数和函数指针一起使用,写起来有点麻烦. 下面贴出一份示例代码,可作参考.(需要支持C++11编译) #include <stdio.h> #include <list> ...
- 为什么 C++ 中成员函数指针是 16 字节?
当我们讨论指针时,通常假设它是一种可以用 void * 指针来表示的东西,在 x86_64 平台下是 8 个字节大小.例如,下面是来自 维基百科中关于 x86_64 的文章 的摘录: Pushes a ...
- C++函数指针总结
学习c++的过程中,指针是难点,熟悉了指针之后,还有一个让人很蛋疼的难点,那就是函数指针了.本博文详细介绍一下常见的各种坑爹的函数指针. 至于指针的详细学习,推荐这篇博文C++指针详解 与数据一样,函 ...
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
- 结构体内嵌函数指针实现C语言面向对象
结构体内嵌函数指针 #include<stdio.h> void say(int age) { printf("我%d岁了\n",age); } struct stud ...
- 用typedef定义函数指针的问题
在学习windows API的时候,遇到下面这段代码 以前见过的typedef的用法都是给一个数据类型取一个别名 typedef oldTypeName newTypeName 这种给数据类型 ...
- 你必须知道的指针基础-7.void指针与函数指针
一.不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据.和用int表示指针异曲同工,只是更明确是“指针” ...
- objective-c中的@selector()和 c /c++的函数指针
先看tomcat里用到的代码: //然后开始动画 //把图片放到animationImages,接受数组参数 self.tom.animationImages = arrayImage; //设置时间 ...
- C++基础——函数指针 函数指针数组
==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...
- QT中使用函数指针
想仿命令行,所以定义了一个类,让一个String 对应一个 function,将两者输入list容器. 类中定义了 QString commandStr; void (MainWindow::*com ...
随机推荐
- HTTP请求代理类(GET 、 POST 、PUT 、DELETE)
package com.jm.http.tools; import java.io.BufferedReader; import java.io.IOException; import java.io ...
- Codeforces 755D:PolandBall and Polygon(思维+线段树)
http://codeforces.com/problemset/problem/755/D 题意:给出一个n正多边形,还有k,一开始从1出发,向第 1 + k 个点连一条边,然后以此类推,直到走完 ...
- 自定义docker镜像
1.拉去centos当作基础镜像 2.重要!!!必须使用超级权限启动: docker run --privileged -ti --name latestCenos centos /usr/sbin ...
- easyui combobox name选择器
HTML: <input name="myinputdom" id="myinputdom" class="easyui-combobox my ...
- mysql的数据存储
# pycharm 连接mysql import pymysql username = input("输入用户名:") pwd = input("输入密码:") ...
- 网络下载器 迅雷大众版 v7.9.42.5050 精简绿色版
下载地址:点我 基本介绍 迅雷大众版是一款采用了先进的超线程技术基于网格原理,能够将存在于第三方服务器和计算机上的数据文件进行有效整合,通过这种先进的超线程技术,用户能够以更快的速度从这些第三方节点平 ...
- C语言学习书籍推荐《C和指针 Pointers On C》下载
<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去. 全书共18 ...
- 新手上路—Java的"瑞士军刀"
“ Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大!这在我们的日常开发工作中,无疑是如虎添翼,事半功倍. Jodd = Tools + IoC + MVC ...
- CI工具Jenkins的安装配置【linux】——jenkins集成sonarqube-异常解决
Setup 官网https://jenkins.io/ 下载war包,扔到tomcat下启动即可. 如果有port限制,在iptables中打开商品限制. 访问http://ip:port/jenki ...
- MySql突然连接不上,报Can't connect to MySQL server on 'localhost' (10061),并且没有mysqld时解决方案
今天连接数据库时突然连接不上,前一天还是好好的.打开数据库就报 Can't connect to MySQL server on 'localhost' (10061) 一直也知道是MySQL服务没有 ...