c语言实验报告函数指针 c语言实验报告函数指针是什么

c语言的函数指针举个例子

函数指针告诉CPU下一步需要执行哪里的代码的指针, 一数组十分相像.

成都创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元南沙做网站,已为上家服务,为南沙各地企业和个人服务,联系电话:13518219792

#include stdio.h

void function(int i, double d)    //一个函数的声明

{

printf("函数运行, %d, %lf\n", i, d);

}

void AnotherFunction(int i, double d)    //另外一个函数声明

{

printf("又一个函数运行, %d, %lf\n", i, d);

}

int main()

{

void (*pFun)(int, double);    //定义了一个函数指针

int (*p)(int , double);    //用于调试的函数指针

pFun = function;    //让这个函数指针指向第一个函数

pFun(10, 10.101);    //通过这个函数指针来调用第一个函数

pFun = AnotherFunction;    //让这个函数指针指向第二个函数

pFun(20, 20.202);    //通过这个函数指针来调用第二个函数

//若将以下代码取消注释, 就会产生错误

/*

p = function;

p = AnotherFunction;

//原因很简单, 因为p是必须指向一个返回值为int, 第一个参数为int, 第二个参数为double的函数, 但是在此代码中定义的函数返回值是void

*/

//这个实验中, 直接用函数名来赋值了, 是因为函数名其实就是这个函数的指针

//而在平常调用函数时, 都要加上(), 如:printf("");

//这里, "()"就相当于'*'(就是取值运算符), printf是函数指针, 就相当于是数组名, 即数组的首地址

return 0;

}

c语言中函数指针是什么 有什么用 举个实例

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

函数指针有两个用途:调用函数和做函数的参数。

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

如:

int func(int x); /* 声明一个函数 */

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */

或者使用下面的方法将函数地址赋给函数指针:

f = func;

赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

下面的程序说明了函数指针调用函数的方法:

#includestdio.h

int max(int x,int y){return (xy? x:y);}

int main()

{

int (*ptr)(int, int);

int a, b, c;

ptr = max;

scanf("%d%d", a, b);

c = (*ptr)(a,b);

printf("a=%d, b=%d, max=%d", a, b, c);

return 0;

}

C语言实验 关于指针的!!

#include stdio.h

#includestdlib.h

#includestring.h /*头文件*/

int find(char srt[],char xCh); /*函数要声明*/

void main() /*main()不是这样写吧*/

{

int cs; /*i时什么东西*/

char a,k[100]; /*char a,k;字符串数组不是这样声明*/

/*int find(char srt,char xCh);这个放到上面声明*/

/*clrscr();这个有什么用?*/

printf("input a char\n");

scanf("%c",a); /*scanf("%s",a);错*/

printf("input a find\n");

scanf("%s",k);

cs=find(k,a); /*cs=find(a,k);*/

printf("%d\n",cs);

}

int find(char srt[],char xCh) /*int findchar srt,char xCh要用()这个,不能用还有错误自己对照*/

{

int j,cs=0,len=strlen(srt);

char*p; /* int *p;*/

p=srt;

/*下面这部分自己看,和你自己的对照一下*/

for(j=0;jlen;j++)

{

if(*(p+j)==xCh)

{

cs++;

printf("%d \n",j);} }

/*这个干吗用?*/

return(cs);

}

/*改了我好长时间,给分啊~~~*/


网页题目:c语言实验报告函数指针 c语言实验报告函数指针是什么
文章起源:http://bzwzjz.com/article/ddgcccj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: app网站建设 营销网站建设 重庆手机网站建设 成都网站建设 成都网站设计 成都网站设计 高端网站设计 手机网站制作 网站设计 定制级高端网站建设 成都网站建设 高端品牌网站建设 重庆网站制作 网站制作 网站建设改版 泸州网站建设 重庆网站建设 成都网站建设 成都企业网站制作 企业手机网站建设 营销网站建设 成都定制网站建设