必须知道的C语言知识细节:函数形参和实参的区别

2023-05-16

当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch

C语言中函数形参和实参是十分重要的概念,初学者很容易混淆。

形参:顾名思义,形式参数,仅仅是声明了参数的类型和参数名称,未实际分配内存和赋值。

实参:实际参数,是指函数调用时,实际赋值和分配内存空间。

例如:

int sum(int a, int b)
{
    return a+b;
}
int main(void)
{
    int c=1;
    sum(c,2);
    return 0;
}

很明显,函数声明和定义时,sum(int a, int b) 其中a和b是形式参数,指明sum函数需要两个参数,并且参数的类型是整型。

当实际调用sum函数时sum(c,2), 其中变量c和常量2都是实际参数,实际参数具有真正的值和内存空间。调用时会给形式参数a和b分配内存空间,并且将实际参数c和常量2的值拷贝给形参指向的内存空间。

因此,总结下区别如下:

1.实参是函数调用时的实际参数值,形参是函数声明和定义时指定的参数名称。

2.实参值的类型必须和形参的类型相同或兼容。

3.实参和形参在函数实际调用时通过值传递方式发生联系,形参未调用时并不会分配空间和赋值,当调用时会分配空间,并且实参拷贝赋值给形参变量(值传递),实参值等于形参值。

4.函数内部只能访问形参值完成计算,无法直接访问实参。

5.函数调用结束后,形参占用的内存空间被释放,函数返回,实参仍然保留原来的内存空间和值。

其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

必须知道的C语言知识细节:函数形参和实参的区别 的相关文章

  • C++判断一个数是不是质数

    详见及参考 xff1a https www nowcoder com practice b8bb5e7703da4a83ac7754c0f3d45a82 tpId 61 225 amp tags 61 amp title 61 amp di
  • C++比较字符串大小(自己实现strcmp()函数)

    详见 xff1a https www nowcoder com practice 963e455fdf7c4a4a997160abedc1951b tpId 61 225 amp tags 61 amp title 61 amp diffi
  • sql多表查询之合并查询(union)

    题1 https www nowcoder com practice 203d0aed8928429a8978185d9a03babc tpId 61 240 amp tags 61 amp title 61 amp difficulty
  • C++统计字符串中各类型字符的个数

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • python对array数组(或矩阵)进行重新排序(且索引确保不同)

    首先需要知道一性质 xff1a pandas的dataframe或numpy的array matrix xff0c 都可以直接通过索引列表进行排序 例如三维的array数组 xff1a A xff0c A shape 61 x y z 则A
  • 数据分析之数理基础与概率统计

    文章目录 随机误差的分布是 96 正态分布 xff08 高斯分布 xff09 96 中心极限定理和大数定律两类错误置信区间 置信度 xff08 置信水平 xff09 协方差是啥 xff0c 怎么判断协方差正负辛普森悖论的例子ABtest1
  • 第九次模拟测试-2

    题目描述 据传 xff0c 2020年是宇宙射线集中爆发的一年 xff0c 这和神秘的宇宙狗脱不了干系 xff01 但是瑞神和东东忙 于正面对决宇宙狗 xff0c 宇宙射线的抵御工作就落到了ZJM的身上 假设宇宙射线的发射点位于一个 平面
  • 为什么16位的Norflash错位接地址线

    NOR Flash的数据宽度是16位的 xff0c 与2440处理器的连接时 xff0c 地址线必须错位进行连接 s3c2440的地址线A0悬空 xff0c A1连接NOR Flash的地址线A0 xff0c A2连接NOR Flash的地
  • MYSQL中 on和where的区别

    https blog csdn net tayngh article details 99684035 在这个博客的基础上补充一下 这是用on的输出结果 xff1a 这是用where的输出结果 xff1a 结合上面链接的博客的文字内容理解
  • Centos7安装ntopng

    Centos7安装ntopng 基础环境配置参照centos7模板机搭建 1 安装依赖项 span class token function cat span span class token operator lt lt span EOF
  • 安装FileZilla,在pc机上,与虚拟机进行文件传输

    FileZilla是一个免费 xff0c 开源的跨平台FTP应用程序 我们可以使用它 xff0c 使pc机与虚拟机的ubuntu进行文件传输 FileZilla下载地址 https www filezilla cn download cli
  • Week12 B - 必做题 - 2

    Week12 B 必做题 2 zjm被困在一个三维的空间中 现在要寻找最短路径逃生 xff01 空间由立方体单位构成 zjm每次向上下前后左右移动一个单位需要一分钟 xff0c 且zjm不能对角线移动 空间的四周封闭 zjm的目标是走到空间
  • Week14 C - Q老师的考验(必做)

    Week14 C Q老师的考验 xff08 必做 xff09 Q老师 对数列有一种非同一般的热爱 xff0c 尤其是优美的斐波那契数列 这一天 xff0c Q老师 为了增强大家对于斐波那契数列的理解 xff0c 决定在斐波那契的基础上创建一
  • Nuitka打包代码为exe

    Nuitka 是一个用于将Python程序打包为可执行文件的第三方模块 相较于PyInstaller xff1a 其能够实现打包体积更小 打包后的程序运行速度更快 程序编译加密 并且不会出现 系统找不到文件路径 winerror3 的错误
  • Qt编写DLL以及调用DLL的方法

    备忘录之用 使用Qt编写DLL 1 使用QtCreator创建Library项目 点击NewProject按钮选择Library项目 选择C 43 43 Library后点击 Choose 按钮 2 编写代码后保存并编译程序在项目目录下找到
  • VSCode配置C/C++环境

    VSCode简介 VSCode是一款微软出的轻量级编辑器 xff0c 它本身只是一款文本编辑器而已 xff0c 所有的功能都是以插件扩展的形式所存在 xff0c 想用什么功能就安装对应的扩展即可 xff0c 非常方便 xff0c 同时也支持
  • Qt 线程中QThread的使用

    文章目录 Qt 线程中QThread的使用1 线程类 QThread1 1 常用共用成员函数1 2 信号槽1 3 静态函数1 4 任务处理函数 2 使用方式 12 2 示例代码3 使用方式 23 1 操作步骤3 2 示例代码 Qt 线程中Q
  • 第九次模拟测试-3

    题目描述 在瑞神大战宇宙射线中我们了解到了宇宙狗的厉害之处 xff0c 虽然宇宙狗凶神恶煞 xff0c 但是宇宙狗有一 个很可爱的女朋友 最近 xff0c 他的女朋友得到了一些数 xff0c 同时 xff0c 她还很喜欢树 xff0c 所以
  • Qt 线程池的使用

    文章目录 Qt 线程池的使用1 Qt 线程池的原理2 QRunnable3 QThreadPool Qt 线程池的使用 1 Qt 线程池的原理 我们使用线程的时候就去创建一个线程 xff0c 这样实现起来非常简便 xff0c 但是就会有一个
  • Bat文件的创建及其命令大全

    Bat文件的创建及其命令大全 一 bat文件的创建 新建txt文本文件 向文本文件中输入命令 保存并修改文本文件后缀为 bat 双击保存后的bat文件 xff0c 运行 二 bat命令大全 echo 和 64 64 span class t

随机推荐

  • [bat] 通过bat脚本配置系统环境变量

    bat 通过bat脚本配置系统环境变量 本文介绍使用bat脚本添加系统环境变量 添加PATH环境变量 添加PATH环境变量 xff0c 如果已经存在则不添加 介绍2种方法来循环搜索路径是否已经存在 xff1a 64 echo off spa
  • 【Python】python之subprocess模块详解

    Python python之subprocess模块详解 subprocess模块 subprocess是Python 2 4中新增的一个模块 xff0c 它允许你生成新的进程 xff0c 连接到它们的 input output error
  • 【gTest】gtest简介及简单使用

    gTest gtest简介及简单使用 gtest是一个跨平台 Liunx Mac OS X Windows Cygwin Windows CE and Symbian 的C 43 43 测试框架 xff0c 有google公司发布 gtes
  • 【Python】多进程 AttributeError: Can‘t pickle local object

    Python 多进程 AttributeError Can t pickle local object 最近写了一个在电脑磁盘搜索全部文件的的一个小程序 xff0c 效果达到了 xff0c 但是效率5 6分钟 xff0c 效率是十分的不理想
  • 【QT】自定义事件 QCustomEvent

    QT 自定义事件 一 自定义事件的优势 尽管 Qt 已经提供了很多事件 xff0c 但对于更加千变万化的需求来说 xff0c 有限的事件都是不够的 例如 xff0c 我要支持一种新的设备 xff0c 这个设备提供一种崭新的交互方式 xff0
  • 【QT】Qt学习之资源文件(qrc)的添加以及使用

    QT Qt学习之资源文件 xff08 qrc xff09 的添加以及使用 前言 当Qt工程打包好发给他人使用时可能会出现一些图片不显示或者一张图片都加载不出来情况 xff0c 那么可能就是他人的电脑没有这些图片资源 xff0c 或者源程序加
  • 【VS】VS、ReSharper 设置修改代码颜色、提高代码辨识度!附VS超实用快捷!

    VS VS ReSharper 设置修改代码颜色 提高代码辨识度 xff01 附VS超实用快捷 xff01 最终效果 xff1a 色彩由自己定义 可一眼辨识出哪些是变量 常量 方法 字符串等 xff0c 非常强大 方便 xff01 1 In
  • 【QT】 Qt高级——Qt自定义标题栏

    QT Qt高级 Qt自定义标题栏 一 Qt自定义标题栏简介 QWidget及其子类窗体组件的标题栏受操作系统的控制 xff0c 即标题栏的界面风格与操作系统的主题风格相同 xff0c 工程实践中需要开发者自行定义 xff0c 达到美化应用程
  • 第四次月模拟题-201809-3

    题目分析 xff1a 本题很绕 xff0c 但是关键的部分非常简洁 xff0c 实际上就是对应的查找字符而已 xff0c 只不过复杂一点的是可能会有分级 xff0c 这样我们就要用一个树结构来储存 xff0c 首先我们先要定义一个结构题 x
  • 【QT】 QSS类的用法及基本语法介绍

    QT QSS类的用法及基本语法介绍 文章目录 QT QSS类的用法及基本语法介绍摘要1 何为Qt样式表2 样式表语法基础3 方箱模型5 创建可缩放样式6 控制大小7 处理伪状态8 使用子部件定义微观样式8 1 相对定位8 2 绝对定位 四
  • 简易数字时钟 按键可校准

    1 课程设计目的 2 课程设计内容及要求 2 1 设计任务 2 2 设计要求 3 verilog程序设计 3 1方案论证 3 2 系统结构框图 3 3设计思路与方法 3 3 1功能模块 1 按键消抖 2 时钟状态 3 时钟调整状态 3 3
  • Chrome - develop for the web

    问题描述 xff1a X Chrome develop for the web Cannot find Chrome executable at Google Chrome Application chrome exe Cannot fin
  • 树莓派4b开启vnc和无法连接解决方法

    树莓派4b开启vnc vnc开启 通过ssh连接到树莓派后运行如下命令 打开命令行 xff0c 输入 sudo raspi config xff0c 打开树莓派软件设置工具 选择 3 Interfacing Options 选择 I3 VN
  • Ubuntu安装软件时报错(报错:dpkg: 处理软件包 xxx (--configure)时出错: 依赖关系问题 - 仍未被配置)

    Ubuntu安装软件时报错 报错 xff1a dpkg 处理软件包 configure 时出错 xff1a 依赖关系问题 仍未被配置 报错信息 xff1a done update alternatives 使用 var lib mecab
  • 修改WIN11右键菜单为经典右键菜单(这一招足够)

    1 首先我们在电脑桌面主页按下 Win 43 R 键 xff0c 打开运行对话框 2 接着在对话框中输入指令 regedit 然后按下回车确认 xff0c 打开注册表界面 3 找到如下注册表路径 xff1a 计算机 HKEY LOCAL M
  • 新版IDEA maven项目不自动下jar包如何解决

    因为是学生 xff0c 可以免费试用jetbrains的产品 xff0c 就下了2020 1 1版的IntelliJ IDEA 在maven项目上 xff0c 它跟之前不同是在pom加入坐标后不能自动从中央仓库下载jar包 2019之前的版
  • 快速搭建私有pip镜像源

    1 快速体验 span class token keyword import span os span class token keyword import span sys span class token keyword import
  • 虚拟机Ubuntu18.04突然连不上网怎么解决

    本来正常使用ubuntu18 04 xff0c 突然连不上网 使用sudo apt get update无法连接到域名 采用如下方法解决 xff01 xff01 xff01 原文链接 xff1a https blog csdn net qq
  • rpm方式安装 mysql5.7.29

    一 rpm方式安装 mysql5 7 29 1 下载mysql5 7 29的rpm安装包 rpm的mysql包 安装起来简单 解压版的mysql还需要做许多配置 xff0c 稍有不慎就会出错 xff01 xff01 xff01 下载地址 x
  • 必须知道的C语言知识细节:函数形参和实参的区别

    当你选择了一种语言 xff0c 意味着你还选择了一组技术 一个社区 Joshua Bloch C语言中函数形参和实参是十分重要的概念 xff0c 初学者很容易混淆 形参 xff1a 顾名思义 xff0c 形式参数 xff0c 仅仅是声明了参