手记

【养成记】嵌入式挑战第10天,第二周第四讲-函数传参之地址传递

【养成记】嵌入式挑战第10天,第二周第四讲-函数传参之地址传递

课程章节

物联网/嵌入式工程师 第二周第四讲 1-7 函数传参之地址传递

课程内容

对C语言中的函数传参之地址传递做了介绍

学习笔记

1. 概述

  • 功能:我们在使用函数传参的时候,除了传递普通的变量外,在某些时刻不得不传递变量的地址。
  • 好处:传递变量的地址,通过指针接收,可用通过指针修改原变量的值。

2. 地址传递

2.1 概述

传递变量的地址,我们在使用的时候,就只能通过指针来接收了。

2.2 代码演示

//
// Created by au on 2022/9/14.
//
#include <stdio.h>


void calc_data(const int x, const int y, int * max_value, int * sum)
{
    if (x >= y) {
        *max_value = x;
    } else {
        *max_value = y;
    }
    *sum = x + y;
    return;
}

/**
 * 1.main()函数定义4个变量,int a,b,max_value,sum.要求用户从键盘输入2个数据赋值给a和b 。

2.设计一个叫做calc_data()函数,自定义返回值和参数,要求该函数中
求出a和b中的最大值,函数调用结束后,要求给main函数max_value存储的是两个数中较大的值。再求两个数的和,要求给main函数sum存储的两个数据的和。

3.在main函数中打印max_value和sum的值。
 * @return
 */
int main()
{
    int a,b,max_value,sum;

    printf("请输入两个整数:\n");
    scanf("%d%d", &a, &b);

    calc_data(a, b, &max_value, &sum);

    printf("您输入的两个数中较大的值为: %d\n", max_value);
    printf("您输入的两个数的和为: %d\n", sum);
}

运行结果

请输入两个整数:
7 4
您输入的两个数中较大的值为: 7
您输入的两个数的和为: 11


请输入两个整数:
23 16
您输入的两个数中较大的值为: 23
您输入的两个数的和为: 39

2.3 交换两个变量的值使用值传递与地址传递的代码对比

2.3.1 值传递—不能完成任务

2.3.2 地址传递—可以完成任务

课程评价

C语言中的函数传参很重要,通过地址传参还可以灵活处理返回多参数的需求。

1人推荐
随时随地看视频
慕课网APP