当前位置: 首页 > news >正文

创造网站的软件西安seo外包公司

创造网站的软件,西安seo外包公司,吴江做网站的公司,直销系统软件目录 ​编辑 指针函数 本质 格式: 函数指针 1、 概念 2、 格式 3、 举例 3.1基本用法 3.2函数指针作为函数参数的用法(回调函数) 函数指针数组 1. 概念 2. 格式 3. 例子 指针函数 本质 是函数,返回值为指针 格式: 数据类型…

目录

​编辑

指针函数

本质

格式:

函数指针

1、 概念

2、 格式

3、 举例

3.1基本用法

3.2函数指针作为函数参数的用法(回调函数)

函数指针数组

1. 概念

2. 格式

3. 例子


指针函数

本质

是函数,返回值为指针

格式:

数据类型 *函数名(形参列表)

{

函数体

return 指针/地址; //return NULL; 一般表示返回失败的情况

}

实例:

char *fun()
{//buf是局部的,函数调用结束空间释放,自己写程序时不可以这样写//char buf[32] = "hello";  //想要实现在函数外能拿到hello字符串,方式如下://方式一:char *buf = "hello"; //"hello"存在常量区//方式二:char *buf = (char *)malloc(32); //在堆区开辟空间strcpy(buf, "hello");return buf;
}
int main(int argc, char const *argv[])
{char *p = fun();printf("%s\n", p);  free(p);p = NULL; return 0;
}

思考:封装一个函数,获取堆区空间的首地址。

//方式一:通过函数的返回值拿到堆区空间首地址
// char *getmemory(int n)
// {
//     char *p = (char *)malloc(n); //成功:首地址,失败:NULL
//     if(p == NULL)
//         return NULL;
//     return p;
// }
//方式二:通过函数参数拿到堆区空间首地址
void getmemory(char **p, int n)
{*p = (char *)malloc(n);
}
int main(int argc, char const *argv[])
{// char *m = getmemory(32);char *m = NULL;getmemory(&m, 32);strcpy(m, "helloworld");printf("%s\n", m);return 0;
}

函数指针

1、 概念

本质是指针,指针指向函数的指针

2、 格式

数据类型 (*指针名)(形参列表);

数据类型:指向的函数的返回值类型

形参列表:和指向的函数的参数一致,此处形参列表可以只保留数据类型,变量名可以省略,如:int (*p)(int, int);

3、 举例

3.1基本用法

int add(int a, int b)
{return a+b;
}
int sub(int a, int b)
{return b-a;
}
int main(int argc, char const *argv[])
{//函数指针int (*p)(int, int) = add; //函数名代表函数的入口地址p = sub; //改变指针的指向,指向sub函数printf("%d\n", add(3, 4));printf("%d\n", p(3, 4));return 0;
}

3.2函数指针作为函数参数用法(回调函数)

int sub(int a, int b)
{    return b-a;
}
int add(int a, int b)
{    return a+b;
}
//函数指针作为函数参数
int test(int a, int b,int (*p)(int, int))
{return a+b+p(1, 3);
}
int main(int argc, char const *argv[])
{    //可以给test函数传递不同的函数,实现代码的复用printf("%d\n", test(10, 20, add));printf("%d\n", test(10, 20, sub));return 0;
}

注意:后面学习中常见的使用流程:

系统给提供包含函数指针的函数接口,用户调用此函数,并自定义函数给函数指针传参

函数指针数组

1. 概念

本质是数组,数组中存放函数指针(指向函数的指针)

2. 格式

数据类型 (*数组名[元素个数])(形参列表);

如:int (*arr[3])(int, int) = {函数名};

3. 例子

int add(int a, int b)
{return a+b;
}
int sub(int a, int b)
{return a-b;
}
int mul(int a, int b)
{return a*b;
}
int main(int argc, char const *argv[])
{//函数指针数组1.  // 定义时赋初值int (*arr[3])(int, int) = {add, sub, mul};2.  // 定义时未赋初值,需要单个元素赋值int (*arr[3])(int, int);arr[0] = add;arr[1] = sub;arr[2] = mul;for(int i = 0; i < 3; i++)printf("%d\n", arr[i](3, 4));return 0;
}

练习:

1. 用变量a表示下面定义

a) 一个整型数

b)一个指向整型数的指针

c)一个指向指针的的指针,它指向的指针是指向一个整型数

d)一个有10个整型数的数组

e) 一个有10个指针的数组,该指针是指向一个整型数的。

f) 一个指向有10个整型数数组的指针

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

http://www.yidumall.com/news/95081.html

相关文章:

  • 网页程序编写关键词排名优化
  • 邯郸网站建设价格seo网站推广收费
  • wordpress云播放器东莞关键词seo
  • 山西公司怎么做网站网站备案查询系统
  • 湖北专业网站建设市面价最近的新闻热点时事
  • 石家庄信息网官方网站域名权重查询工具
  • 网站的风格指的是什么百度快速收录工具
  • 建设政府网站可行性报告爱站工具包官网
  • 网站建设公司岗位网络培训心得体会
  • 云南网站建设公司前十名苏州网站建设
  • 俱乐部网站模板app运营推广策划方案
  • 现在c 做网站用什么百度用户服务中心
  • 重庆黄页网站海外网站cdn加速
  • 网站怎么做全屏滚动条最新国内新闻10条
  • 做网站论坛 前置许可性价比高的seo网站优化
  • seo优化什么意思seo是什么职务
  • 深圳网站建设哪家公司好宁波正规优化seo价格
  • 网站建设销售招聘seo自动工具
  • 网站建设主页文档教育培训网站模板
  • 怎么查看一个网站开发语言百度优化是什么
  • 西安网站设计哪家好推广方法
  • 网站排名软件包年企业文化经典句子
  • 造纸公司网站建设西安网约车平台
  • 西昌有哪些做网站的公司优化网站内容
  • 个人网站logo生成百度推广平台登录
  • 做网站注册哪类商标百度在线客服系统
  • 建立网站需要河南新站关键词排名优化外包
  • 乐山网站制作公司小程序开发流程
  • 外贸网站好做吗小视频关键词汇总
  • 论述网站建设的主要步骤seo前线