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

C31-形参与实参的区别

一 形参与实参

  1. 实参:调用函数时传递的实际值,可以是变量、常量或表达式,如"add(3,a)"中的’3’与’a’
  2. 形参:函数定义中声明的参数变量,用于接收实参的值,如"int add(intx,inty)"中的’x’与’y’
  • C语言默认通过值传递参数,形参与实参是独立的变量,仅数据单向传递.因此实参与形参的值相同,但地址空间不同.

我们通过一个实例来论证以上知识点:

  • 代码
#include <stdio.h>//下面我们将定义一个函数用于测试
int test(int x) //这里的x是形式参数{printf("形参数据%d的内存地址是:%p\n",x,&x);return 0;}//以下是主函数
int main()
{//局部变量的定义int x;int y;//数据录入puts("请输入一个整数:");scanf("%d",&x);//数据处理y=test(x);  //这里的x是实际参数printf("实参数据%d的内存地址是:%p\n",x,&x);return 0;
} 
  • 结果

image-20250508211044584

二 局部变量

  • 引入:形参与实参就是局部变量.
  1. 局部变量是指在函数内或代码块({})内定义的变量,有特点:

    • 作用域局限:仅在它定义的函数或代码块内有效,外部无法访问;
    • 内存管理:存储于栈区,函数调用时创建,结束后自动释放,值为随机值.
  2. 分类

    • 普通局部变量:每次调用函数时重新创建和初始化.

    • 静态局部变量:仅初始化一次,生命周期贯穿程序,保留上次值.

  3. 注意:避免与全局变量同名(局部会屏蔽全局),禁止返回局部变量的地址

http://www.xdnf.cn/news/4604.html

相关文章:

  • Google 发布 Gemini 2.5 Pro Preview (I/O Edition),具有增强的编程能力
  • 多模态文档检索开源方案-三大竞赛获奖方案技术链路
  • Flink SQL DataStream 融合开发模式与动态配置热加载机制实战
  • C++ STL 入门:map 键值对容器
  • Centos离线安装mysql、redis、nginx等工具缺乏层层依赖的解决方案
  • 全面解析 iTextSharp:在 .NET 中高效处理 PDF
  • 贵州安全员考试内容有哪些?
  • Python学习笔记--Django的安装和简单使用(一)
  • 【Linux网络】Socket 编程预备
  • 图像管理与人脸识别工具深度解析
  • 查看单元测试覆盖率
  • 辰鳗科技朱越洋:紧扣时代契机,全力投身能源转型战略赛道
  • maven 安装 本地 jar
  • 算法的时间复杂度
  • 手写 vue 源码 ===:自定义调度器、递归调用规避与深度代理
  • 基于大模型预测的产钳助产分娩全方位研究报告
  • 【工具教程】批量提取PDF指定内容并重命名,PDF文档根据指定识别文字改名,基于java的实现方案
  • (7)Nokov 室内光学跟踪系统
  • 玄机 第一章 应急响应-Linux日志分析
  • C#学习7_面向对象:类、方法、修饰符
  • MySQL 8.0 OCP(1Z0-908)英文题库(11-20)
  • 编写大模型Prompt提示词方法
  • 奥威BI:AI+BI深度融合,重塑智能AI数据分析新标杆
  • 382_C++_在用户会话结束时,检查是否有其他会话仍然来自同一个客户端 IP 地址,没有连接状态设置为断开,否则为连接
  • M0芯片的基础篇Timer
  • Android RecyclerView自带的OnFlingListener,Kotlin
  • 58.[前端开发-前端工程化]Day05-webpack-Git安装-配置-Git命令
  • 【目标检测标签转换工具】YOLO 格式与 Pascal VOC XML 格式的互转详解(含完整代码)
  • Tcp 通信简单demo思路
  • Typora安装使用教程,图片相对储存路径路径设置