函数的形参与实参间的数据传递

形参:函数定义时,函数名后的括号内的参数。
实参:函数调用时,函数名后的括号内的参数。

//验证形参与实参同名时,对形参修改,实参值是否会变化
//分别查看形参和实参的地址
#include<stdio.h>
#include<stdlib.h>

int add(int a, int b)//实现两数相加
{ 
    int result;
    int *funaadd,*funbadd;
    funaadd=&a;//取形参地址
    funbadd=&b;
    printf("funaadd=%d,funbadd=%d\n",funaadd,funbadd);
    result=a+b;//求和
    a+=1;//改变形参的值
    b+=1;
    printf("funa=%d,funb=%d\n",a,b);
    return (result);
}

void main()
{   
    int a,b,c;
    int *aadd, *badd;
    aadd=&a;
    badd=&b;
    printf("mainaadd=%d,mainbadd=%d\n",aadd,badd);
    printf("please enter two integer a,b\n");
    scanf("%d,%d",&a,&b);//键入两个数
    c = add(a,b);//求和
    printf("maina=%d,mainb=%d\n",a,b);
    printf("%d+%d=%d\n",a,b,c);
    getchar();
    system("pause");
}

关于形参和实参的说明
1.在该函数未被调用时,函数定义中的形参未被分配内存单元
设置断点

这里写图片描述

这里写图片描述

2.在函数调用时,形参才会被分配内存单元,即新建一个变量接收实参的值,将实参复制了,在函数中进行相应的处理,而不影响实参的值(即使实参名与形参名相同时)。如本程序在函数add中,对形参a,b进行自增操作后,分别为2,3;而实参值仍为1,2,保持不变。形参的地址为14f6d8、14f6dc,而实参的地址为14f7e0,14f7d4,明显不是相同的变量。在函数调用结束后,会释放形参存储的单元。
这里写图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值