没有合适的资源?快使用搜索试试~ 我知道了~
C语言指针和函数实例教程
4星 · 超过85%的资源 需积分: 14 8 下载量 182 浏览量
2011-05-11
00:56:43
上传
评论
收藏 49KB DOC 举报
温馨提示
试读
10页
C语言指针和函数实例教程,#include void fun() { } int main() { printf('%p %p %p\n', &fun, fun, *fun); return 0; }
资源推荐
资源详情
资源评论
首先在 语言中函数是一种 的方式即对于一个函数会将其自动转换成指针的类
型如
代码:
!
这三个值的结果是一样的其实对于最后的那个即使前面加上很多个号其结果也不变即
的结果都是一样的对于这个问题因为之前讲过函数是一种
方式其会自动转换成指针的类型 是该函数的地址为指针类型 是一个
函数会转换成其指针类型而对于由于 已经变成了指针类型指向这个函数所以 就是取
这个地址的函数而又根据 该函数也转变成了一个指针所以以此类推这三个值的
结果是相同的
"如何调用一个地址上的函数
##如果知道了一个函数所在的地址可以将其强制转化成某一种类型的函数指针然后再根据这个指针去调
用这个地址的函数如
代码:
#include<stdio.h>
typedef void (*pfun)(int);
void f(int i)
{
printf('i = %d', i);
}
int main()
{
unsigned long add;
add = (unsigned long)f;
((pfun)add)(10);
(*(pfun)add)(20);
return 0;
}
使用的方式可以将一个地址转换成一个带 参数且没有返回值的函数的指针类型然后再
去调用由于第 $ 点中讲的 所以最后两条语句中加与不加那个号效果都是一样的
在嵌入式方面经常用到这种方式
%函数指针数组的用法
有时候需要定义一个数组其内容为一系列的函数指针然后对其进行调用如
代码:
&
资源评论
- cherryljr2012-12-19还好吧,帮了我不少忙哈
zh1147
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功