永发信息网

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

答案:1  悬赏:0  手机版
解决时间 2021-04-30 23:50
  • 提问者网友:聂風
  • 2021-04-30 09:30
c语言函数调用实参到形参传递的是值,那地址是怎么传递的?
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-04-30 10:22

首先,是实参调用形参.你说的地址传递其实和值传递差不多.


比如max( &a, &b );这是实参


int max( int *p, int *p2 )这是形参.


比如实参,&a和&b都是取a和b的地址,又因为max()函数的形参是*p和*p2( *p和*p2被声明为整型的指针 ),因为指针是存地址的,所以把a和b的地址赋给p和p2.下面是一个把a和b的值交换的程序.



#include <stdio.h>


int max( int *p, int *p2 );


int main( void )
{
int a, b;

scanf( "%d", &a );
scanf( "%d", &b );

max( &a, &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;
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯