您的位置:首页 > 编程语言 > C语言/C++

C语言的传值与传址调用

2015-06-12 13:39 246 查看
1. 函数参数传递方式之一:值传递

void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数

{

int tmp;

tmp=x;

x=y;

y=tmp;

printf(“x=%d,y=%d/n”,x,y)

}

void main()

{

int a=4,b=6;

Exchg1 (a,b) //a,b变量为Exchg1函数的实际参数。

printf(“a=%d,b=%d/n”,a,b)

}

程序输出的结果是:

x=6 , y=4

a=4 , b=6 //为什么不是a=6,b=4呢?

2. 函数参数传递方式之二:地址传递

Exchg2(int *px, int *py)

{

int tmp=*px;

*px=*py;

*py=tmp;

print(“*px=%d,*py=%d/n”,*px,*py);

}

main()

{

int a=4;

int b=6;

Exchg2(&a,&b);

Print(“a=%d,b=%d/n”, a, b);

}

它的输出结果是:

*px=6,*py=4

a=6,b=4

3. 函数参数传递方式之三:引用传递

Exchg3(int &x, int &y) //注意定义处的形式参数的格式与值传递不同

{

int tmp=x;

x=y;

y=tmp;

print(“x=%d,y=%d/n”,x,y);

}

main()

{

int a=4;

int b=6;

Exchg3(a,b); //注意:这里调用方式与值传递一样

Print(“a=%d,b=%d/n”, a, b);

}

输出结果:

x=6, y=4

a=6, b=4 //这个输出结果与值传递不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: