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

函数参数是定义还是赋值

文章目录

      • 函数定义时形参是定义
      • 函数调用时形参是赋值

函数定义时形参是定义

在函数定义阶段,像 int add(int a, int b) 里的 ab 属于形参,此时它们是一种占位符,用于表明函数接收的参数类型和数量。这其实是在定义函数接口,为函数内部使用这些参数做好准备。从语法层面来看,这是变量的定义过程,只是这些变量没有具体的值。例如:

// 函数定义,这里的 a 和 b 是形参的定义
int add(int a, int b)
{
    return a + b;
}

函数调用时形参是赋值

当调用函数时,会把实参传递给形参。比如 add(3, 5) ,这里的 35 是实参。在函数调用的过程中,系统会把实参的值复制给对应的形参,也就是给形参赋值。以 add(3, 5) 为例,3 会被赋值给形参 a5 会被赋值给形参 b。以下是完整的调用示例:

#include <iostream>

// 函数定义
int add(int a, int b) {
    return a + b;
}

int main() {
    // 函数调用,3 和 5 是实参
    int result = add(3, 5); 
    std::cout << "Result: " << result << std::endl;
    return 0;
}

在这个例子中,调用 add(3, 5) 时,实参 35 分别给形参 ab 赋值,函数内部就使用这些赋值后的形参来执行 a + b 的操作。

综上所述,函数定义时形参是定义过程,而函数调用传参时,是对形参进行赋值操作。 其实内部只是压栈的操作。

http://www.dtcms.com/a/93996.html

相关文章:

  • 从 Flask 项目打包为多平台 Docker 镜像并上传 Docker Hub(含 GitHub Actions)
  • 需求导向的K8S网络原理分析:Kube-proxy、Flannel、Calico的地位和作用
  • Langchain+NebulaGraph结合大模型的KBQA源码分析
  • C#基础学习(七)函数的重载
  • mac安装talib
  • 2025.03.27【基因分析新工具】| MAST:解锁基因表达差异分析与网络构建
  • 蓝桥与力扣刷题(蓝桥 山)
  • Es6进阶
  • 递归、搜索、回溯算法
  • Linux平台x86_64|aarch64架构RTSP|RTMP直播播放器开发实践
  • 分布式并发控制实战手册:从Redis锁到ZK选主的架构之道
  • 群体智能优化算法-大猩猩部落优化算法(Gorilla Troops Optimizer, GTO,含Matlab源代码)
  • 【深度学习】
  • 基于Qwen2.5-7B-Instruct进行LoRA微调推理全流程探索
  • JavaScript基础-定时器
  • sock文件介绍--以mysql.sock为例
  • Spring AI + DeepSeek 构建大模型应用 Demo
  • 【HCIA-网工探长】09:OSPF快速配置的方法
  • 【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
  • 《Python实战进阶》No37: 强化学习入门:Q-Learning 与 DQN-加餐版1 Q-Learning算法可视化
  • 十七天-Numpy 学习笔记
  • 无机械部件+线性频响:XARION传感器如何解决传统声学检测三大痛点?
  • VMware安装Ubuntu实战分享:从下载到桌面的完整指南
  • 【leetcode hot 100 347】前 K 个高频元素
  • 夯实 kafka 系列|第六章:自定义注解 @EvalEventListener 开发
  • Java-servlet(九)前端会话,会话管理与Cookie和HttpSession全解析
  • LeetCode 2829.k-avoiding 数组的最小总和:贪心(数学公式O(1)算出)
  • https://blog.csdn.net/Snowy_susu/article/details/103007927
  • window系统下安装elk
  • 备赛蓝桥杯之第十六届模拟赛第1期职业院校组第五题:回忆画廊