您的位置:首页 > 其它

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

2015-07-19 16:18 369 查看
形参:函数定义时,函数名后的括号内的参数。

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

//验证形参与实参同名时,对形参修改,实参值是否会变化
//分别查看形参和实参的地址
#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,明显不是相同的变量。在函数调用结束后,会释放形参存储的单元。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: