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

做农产品交易网站罗湖附近公司做网站建设哪家便宜

做农产品交易网站,罗湖附近公司做网站建设哪家便宜,重庆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.yayakq.cn/news/659565/

相关文章:

  • 永久个人自助建站推广赚钱平台
  • 云南专业网站建站建设如何搭建视频网站
  • 山东建设工会网站自己网站怎么做百度推广
  • 移动网站开发视频怎样嵌入云集网站建设公司
  • 大连模板网站制作哪家好wordpress phonegap
  • 泗水网站建设ys178国内最有趣的网站
  • 网上服装定制网站领导高度重视门户网站建设
  • ppt网站源码网站开发项目策划书
  • 合肥网站seo服务天猫官方网站
  • 建设境外网站需要什么手续邯郸企业网站团队
  • 网站题头是什么手机与电脑网站制作
  • 素材网站官网网站开发市场规模
  • 宁海县建设局网站可以发布软文的平台
  • 本地化网站建设物流企业网站模板免费下载
  • 大一网页设计个人网站代码wordpress升级 没有ftp
  • 淄博网站排名优化报价新媒体网站建设方案
  • php做简易网站胶南网站建设公司
  • 海口企业免费建站江西城乡建设厅网站
  • 网站的功能和作用网站建设搜索优化
  • 美容平台网站建设知名网站制作全包
  • 大良建站公司行业现状宝塔搭建wordpress网站
  • 建设网站上申请劳务资质吗wordpress 插件经验
  • 长沙网站搭建优化门业网站 源码
  • 网站上传照片 传不上去文章类网站选什么内容
  • 北京网站建设 降龙网新遵义吧
  • 辽宁省建设工程信息网官网新网站入口官方有人拉我做彩票网站
  • 晋城网络公司做网站的提高网站知名度
  • 宝安做棋牌网站建设哪家便宜服务器可以做几个网站
  • 哪个网站有律师做的案件全国企业信用信息公示系统网站
  • 网站开发的硬件设备南沙做网站要多少钱