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

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. 注意:避免与全局变量同名(局部会屏蔽全局),禁止返回局部变量的地址

相关文章:

  • Harmonyos-属性修改器和更新器
  • JavaScript基础 (二)
  • 二叉树结构的深入学习
  • PostgreSQL安装与升级cron插件
  • 基于STM32、HAL库的FT234XD USB转UART收发器 驱动程序设计
  • 企业数字化转型的建设流程和实施条件分别是什么?
  • 【Windows 环境安装ollama,通过ollama拉起大模型】
  • 单片机 + 图像处理芯片 + TFT彩屏 指示灯控件
  • 《P2880 [USACO07JAN] 平衡系列 G》
  • 19.idea调试功能
  • 【嵌入式开发-RS-485】
  • 阀门产业发展方向报告(石油化工阀门应用技术交流大会)
  • 蓝绿发布与金丝雀发布
  • 兼具直连存储与分布式存储优势的混合存储方案
  • AI搜索的未来:技术纵深发展与关键突破路径
  • 自动机小述(三又二分之一)
  • 数组和指针典型例题合集(一维数组、字符数组、二维数组)
  • 量化策略兼容性设计
  • Linux常用命令34——uname显示系统内核信息
  • AtCoder Beginner Contest 404 A-E 题解
  • 湖南省职业病防治院通报3岁女童确诊“铊中毒”:去年病例,编辑误写为“近日”
  • 新村回响:一周城市生活
  • 港理大研究揭示:塑胶废物潜藏微生物群落或引发生态危机
  • 深入贯彻中央八项规定精神学习教育中央第七指导组指导督导中国船舶集团见面会召开
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院发布情况说明
  • 解读|降准叠加政策利率、公积金贷款利率、结构性政策工具利率全线下调,影响有多大?