0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中函数的返回值指向一个指针

云深之无迹 来源:云深之无迹 2023-04-26 11:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

函数的返回值类型必须与函数体内的返回表达式的类型相匹配。如果类型不匹配,编译器会报错。此外,C 语言中的函数只能返回一个值,如果需要返回多个值,可以使用结构体或指针等方式来实现。

f3b55492-e351-11ed-ab56-dac502259ad0.png

返回一个结构体类型的值并将其存储到一个结构体类型的变量中。add() 函数接收两个 Point 类型的参数,并返回一个 Point 类型的值。在函数体内,将两个参数的 x 坐标和 y 坐标分别相加,得到一个新的 Point 类型的结构体,然后将这个结构体作为函数的返回值返回。在 main() 函数中,创建两个 Point 类型的结构体 p1 和 p2,并将它们传递给 add() 函数。然后,使用一个 Point 类型的变量 p3 来存储 add() 函数的返回值,并打印出 p3 的坐标。

f3d8c29c-e351-11ed-ab56-dac502259ad0.png

create_array() 函数接收一个整数 n,然后动态分配了一个 n 个元素的整型数组,将数组中的每个元素初始化为其下标值,最后将指向数组的指针作为函数的返回值返回。在 main() 函数中,调用 create_array() 函数并将其返回值指向一个整型指针 arr。然后,使用一个循环遍历数组的每个元素,并打印出其值。最后,释放数组所占用的内存空间。

在 C 语言中,回调函数是指一个函数指针,它作为参数传递给另一个函数,使得被调用的函数可以调用传递进来的函数指针来完成一些特定的操作。通常情况下,回调函数可以用于事件处理、信号处理、异步操作等方面。

f3f1da2a-e351-11ed-ab56-dac502259ad0.png

定义了一个函数指针类型 callback,它指向一个没有返回值,带有一个整型参数的函数。

然后,定义了一个名为 apply() 的函数,它接收一个整型数组 arr,数组的长度 n,以及一个函数指针 cb。在函数体内,使用一个循环遍历数组中的每个元素,并调用传递进来的函数指针 cb 来处理每个元素。

在 main() 函数中,定义了一个整型数组 arr,并调用 apply() 函数来处理数组中的每个元素。在调用 apply() 函数时,将一个名为 print() 的函数指针作为参数传递给它,这个函数会将整型参数打印到标准输出中。

apply()函数是一个通用的函数,它可以接收任意类型的数组和任意类型的函数指针。通过传递不同的函数指针,可以实现不同的操作。这种方式使得代码的复用性更好,并且使得代码更加灵活。

函数指针是指一个指向函数的指针变量,它存储了函数的地址,可以用来调用函数。函数指针的定义方式与普通的指针定义方式相似,只是需要在指针类型前面加上函数的返回类型和参数列表。

int(*p)(int,int);

定义了一个名为 p 的指向函数的指针变量,这个函数返回值类型是 int,有两个整型参数。这个函数指针可以指向一个具有相同返回值类型和参数列表的函数。

f414f08c-e351-11ed-ab56-dac502259ad0.png

打完收工

定义了两个函数 add() 和 subtract(),分别实现了加法和减法操作。然后,定义了一个名为 p 的函数指针,它可以指向一个带有两个整型参数并返回整型的函数。在 main() 函数中,将 p 指向 add() 函数,并调用它来完成加法操作,然后再将 p 指向 subtract() 函数,并调用它来完成减法操作。

函数里面的参数可以传递一个指针进来。指针作为参数传递进函数时,实际上传递的是指针所指向的内存地址,函数可以通过指针来访问、修改指针所指向的内存中的数据。

f42f6f20-e351-11ed-ab56-dac502259ad0.png

定义了一个名为 swap() 的函数,它有两个参数,都是指向整型变量的指针。在 main() 函数中,定义了两个整型变量 x 和 y,并输出它们的初始值。然后,将 x 和 y 的地址传递给 swap() 函数,让它交换这两个变量的值。最后,再次输出 x 和 y 的值,发现它们的值已经被成功交换了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144625
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66843
  • 指针
    +关注

    关注

    1

    文章

    484

    浏览量

    71677
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51083

原文标题:函数的返回值指向一个指针

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问C语言开发单片机为什么大多数都采用全局变量的形式?

    C语言代码,大多数都是使用全局变量,也就是用很多函数来操作这些变量,比如函数1把全局变量经过
    发表于 12-04 07:47

    飞凌嵌入式ElfBoard-文件I/O的了解探究之返回错误处理与相关函数

    *strerror(int errnum);3.参数errnum:错误标号,通常用errno。4.返回值返回指向描述该错误的字符串的
    发表于 11-21 08:50

    如何获取易贝EBAY商品详情 API 返回值说明?

    的API获取商品详情时,通常会返回JSON或XML格式的响应,这个响应包含了商品的详细信息。以下是简化的JSON格式的eBay商品详
    的头像 发表于 11-19 11:57 105次阅读

    如何获得速卖通aliexpress分类详情 API 返回值说明

    的API返回值会取决于你使用的API版本和请求类型。 以下是假设性的速卖通分类详情API返回值的说明,但请注意,这并非实际的API返回
    的头像 发表于 11-09 17:46 1022次阅读

    飞凌嵌入式ElfBoard-标准IO接口之读文件

    1.fgetc对单个字符的读操作,只能操作文本文件。1)头文件#include 2)函数原型int fgetc(FILE *stream);3)参数stream:目标文件的文件指针。4)返回值若读取
    发表于 11-07 10:33

    蜂鸟E203的GPIO读取的返回值注意事项

    蜂鸟E203使用Nuclei Studio开发,使用库函数中的gpio_read()读取IO口的输入时,当IO口是高电平时,使用函数所得到的返回值与IO口的编号存在
    发表于 10-22 08:05

    使用jQuery的常用方法与返回值分析

    使用jQuery的常用方法与返回值分析 jQuery是轻量级的JavaScript库,旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍些常用的jQuery方
    发表于 10-01 20:18

    开发单片机需要学习什么?软件编程的 4 关键层次

    ,缺不可。 第层是 C 语言基础语法。这是单片机编程的 “通用语言”,需熟练掌握变量(字符型、整型、浮点型)、
    的头像 发表于 08-25 11:32 580次阅读

    C语言中的内联函数与宏

    C编程中,内联函数和宏都用于避免函数调用的开销并编写可复用的逻辑部分,但它们在工作方式和安全性方面存在显著差异。
    的头像 发表于 07-25 15:10 1724次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>的内联<b class='flag-5'>函数</b>与宏

    请问CY68013上位机发送的返回值到底代表什么意思?

    ,为0时代表发送失败,刚开始直没问题,FPGA端接收也正常,上位机返回值也是1, 最后返回值直是0,所以我直认为发送失败了,但是今天在
    发表于 05-22 07:16

    函数指针的六常见应用场景

    函数指针在嵌入式开发中有着广泛的应用,它让代码更加灵活,减少冗余,提高可扩展性。很多时候,我们需要根据不同的情况动态调用不同的函数,而函数指针
    的头像 发表于 04-07 11:58 1130次阅读
    <b class='flag-5'>函数</b><b class='flag-5'>指针</b>的六<b class='flag-5'>个</b>常见应用场景

    C语言如何处理函数返回值

    当你在函数的最后写上 return 0 的时候,它是如何返回给调用函数的? 比如 test 函数,为了待会更好的看懂汇编代码,我写成了 return 1234。 处理
    的头像 发表于 01-16 09:21 760次阅读

    如何把两个数据返回给调用函数

    函数的处理结果包含两个数据,如何把两个数据返回给调用函数? 第种,把两个数据封装成结构体,
    的头像 发表于 01-08 10:15 680次阅读

    EE-128:C语言中的DSP:从C调用汇编类成员函数

    电子发烧友网站提供《EE-128:C语言中的DSP:从C调用汇编类成员函数.pdf》资料免费下载
    发表于 01-07 13:48 0次下载
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>语言中</b>的DSP:从<b class='flag-5'>C</b>调用汇编类成员<b class='flag-5'>函数</b>

    C语言笔试题

    来看C语言笔试题,应该很少有人能给出正确答案。 #include int f(){ printf("this is f ..."); return 1;}int g(){ prin
    的头像 发表于 12-30 09:48 675次阅读