c语言函数调用实参到形参传递的是值,那地址是怎么传递的?

rrfo080
2013-10-11 · TA获得超过4336个赞
知道小有建树答主
回答量:1021
采纳率:0%
帮助的人:1901万
展开全部
首先,是实参调用形参.你说的地址传递其实和值传递差不多.比如max( &a, &b );这是实参int max( int *p, int *p2 )这是形参.比如实参,&a和&b都是取a和b的地址,又因为max()函数的形参是*p和*p2( *p和*p2被声明为整型的指针 ),因为指针是存地址的,所以把a和b的地址赋给p和p2.下面是一个把a和b的值交换的程序./* ============================ 程序名:max.c 目的:用地址交换两个变量的值. ============================ */#include <stdio.h>int max( int *p, int *p2 ); /* 声明函数 */ int main( void ){int a, b;scanf( "%d", &a ); /* 输入两个变量的值 */ scanf( "%d", &b ); printf( "a = %d, b = %d\n", a, b );return 0;}int max( int *p, int *p2 ){int temp; /* 定义一个临时变量,为的只是交换 */temp = *p;*p = *p2;*p2 = temp; /* 己交换 */}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式