C语言中的指针型函数值
本文节选自《21天学通C语言》一书

函数的函数返回值也可以是指针型的数据,即地址。返回该类型值时,执行机制与返回其他类型完全相同。含有指针型函数值的函数的声明一般为:
数据类型 * 函数名(形参列表);
    其中,数据类型和指针操作符组成指针类型。例如:
    int * max(int a, int b, int c);
    此max函数中的return语句必须返回一个变量的地址或一个指针变量的值。范例14-6演示了如何使用指针变量作为函数返回值。
【范例14-6】使用指针变量作为函数返回值,实现方法如示例代码14-6所示。
示例代码14-6
01    #include <stdio.h>
02    
03    /* 求最大数的地址 */
04    int * max(int * a, int * b, int * c) {
05        int * p = NULL;
06    
07        if (*a > *b)                                /* 如果a指向值较大,将p设为a */
08            p = a;
09        else                                        /* 如果b指向值较大,将p设为b */
10            p = b;
11    
12        if (*p < *c)                                /* 如果c指向值较大,将p设为c */
13            p = c;
14    
15        return p;
16    }
17    
18    int main(void) {
19        int a = 0;                                /* 定义并初始化a */
20        int b = 0;                                /* 定义并初始化b */
21        int c = 0;                                 /* 定义并初始化c */
22        int * p = NULL;
23    
24        /* 从标准输入读取个数值赋值给a、b和c */
25        printf("Please input three integers:");
26        scanf("%d", &a);                            /* 读入a */
27        scanf("%d", &b);                            /* 读入b */
28        scanf("%d", &c);                            /* 读入c */
29    
30        /* 求a,b和c的最大值 */
31        p = max(&a, &b, &c);                        /* 调用max函数 */
32        printf("The max. is %d./n", *p);            /* 输出函数执行结果 */
33    
34        return 0;
35    }
【运行结果】程序运行后,输入三个数,“531”,得到结果。
【代码解析】本程序实现了一个求最大数地址的max函数。该函数以指针类型变量作为函数值,形参为三个int型指针变量。在函数中将三个指针指向的值做比较并找到最大值,将指向该值的指针返回。
在max函数中:
    第7~10行,先比较a和b指向的值,将p赋值为指向的值较大的指针变量。
    第12~13行,如果p指向的变量小于c指向的变量,将p赋值为c的值。

C语言中的指针型函数值相关推荐

  1. c语言中的指数位,c语言的指数符号

    匿名用户 1级 2009-03-29 回答 C语言符号集包括:英文字母.数字和一些有特定含义的标点符号.任何C程序都是由C的符号集里的符号构成具有一定含义的语句,再由这些语句组成程序. 一.字母.数字 ...

  2. c语言中输入x分段函数值,c语言程序改错:输入x,计算并输出分段函数y的值.0 x0...

    C语言 . 输入半径R ,并计算圆的面积S 和周长L .3. 编写一个程序实现把小写字母转换成大写字母.比如 #includeintmain(){floatr,s,l;scanf("%f&q ...

  3. C语言中字符串变量的函数值传递与指针传递

    以前学函数值传递和引用传递的时候用的例子是整型变量,在这篇文章中详细说明了值传递和引用传递. 但是如果是字符串变量,今天又有点迷糊了! 先说总结: 要想用指针传递通过函数改变主函数中字符串指针变量的值 ...

  4. c语言中执行一次的函数once,iOS只执行一次的方法

    IOS开发(64)之GCD任务最多只执行一次 1 前言 使用 dispatch_once 函数 在 APP 的生命周期内来保证你想确保每段代码只执行一次,即使它在代码的不同地方多次调用(比如单例的初始 ...

  5. c语言指针很危险,浅谈C语言中指针使用不当的危险性.doc

    浅谈C语言中指针使用不当的危险性.doc 第 19 卷 Vol . 19 第 2 期 No . 2 洛阳师专学报 Journal of Luoyang Teachers College 2000 年 ...

  6. c语言中数据常量有哪些,C语言的数值常量是指什么

    满意答案 asdxxmm 2015.09.21 采纳率:57%    等级:6 已帮助:857人 C语言中的数值常量可以简单的分为如下两种整型常量和浮点数常量: 一. 整型常量 如6,27,-299 ...

  7. c语言中标准输入文件 stdin 是指,C语言中,认为键盘是标准输入文件stdin

    不红旗",语言中牌的国制工匠造中造世界品精神了打体现. 年度个人管理总额结汇业务实行,为键文件年等值(即每人每. 指对账的原则,标准不相应予符的反映,果的真实信息会计核算和业必须务处对账结果 ...

  8. c语言中的无符号字符指什么,深入分析C语言中的有符号和无符号

    有符号和无符号指的是数字那么有符号和无符号的区别是什么,我们这里一起来看在C语言中的有符号和无符号分析吧,希望这篇文章能够对各位有用. 就像我们必须决定某个量使用整数还是实数,使用多大的范围数一样,我 ...

  9. python语言int什么意思,python中int指的是什么意思

    python中int指的是什么意思 发布时间:2020-11-04 11:51:20 来源:亿速云 阅读:67 作者:小新 小编给大家分享一下python中int指的是什么意思,希望大家阅读完这篇文章 ...

  10. php语言的include,php中include_once指的是什么意思

    php中include_once指的是什么意思 发布时间:2020-11-10 10:58:06 来源:亿速云 阅读:121 作者:小新 这篇文章给大家分享的是有关php中include_once指的 ...

最新文章

  1. Hadoop三种安装模式
  2. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)
  3. wukong引擎源码分析之索引——part 2 持久化 直接set(key,docID数组)在kv存储里...
  4. 【Spring框架家族】SpringBoot自动配置基本实现
  5. 并不是所有的程序员都适合做技术管理
  6. Vue.js 自定义事件
  7. Java线程6个状态详解
  8. ITK:Delaunay贴合边缘翻转
  9. Git 简单命令行指令
  10. 隐马尔科夫模型C#语言算法实现
  11. 科发财务凭证登陆出现错误:40002
  12. a start job is running for延迟90s的解决办法
  13. 数据库事务复制(读写分离)设计的一点经验
  14. 商务统计_13 使用excel拟合曲趋势线
  15. 最大回撤python_最大回撤,最大回撤恢复时间与最大回撤持续期
  16. 【论文解读 ICEIT2022】Heterogeneous Graph Based Knowledge Tracing基于异构图的知识追踪
  17. 为什么大型网站前端使用PHP,后台逻辑却用Java?
  18. 在线URLEncode/URLDecode网址
  19. PDF文本框更改字体大小
  20. Laravel框中使用EasyWeChat 使用网页授权

热门文章

  1. 4.数据库数据导入查询数据库信息出现乱码问题
  2. 操作系统--文件管理
  3. GoogleTest测试框架介绍(一)
  4. C#读取匿名对象的属性值的方法总结
  5. Linux下2号进程的kthreadd--Linux进程的管理与调度(七)
  6. 记一次%转义引发的血案
  7. 【设计模式】之单例模式
  8. 2015,鬼王Xun和GGL比赛,带给我们无尽的欢乐
  9. 【转】Windows的多线程编程,C/C++
  10. Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图