实现交换a,b的数值:
直接法:
#include<stdio.h>
int main()
{
int a=10,b=20,temp=0;
printf("a=%d b=%d\n",a,b);
temp=a;
a=b;
b=temp;
printf("a=%d b=%d\n",a,b);
}
输出为:20 10
函数法:
#include<stdio.h>
int main()
{
int a=10;
int b=20;
//交换函数 swap()
Swap(a,b);
printf("a=%d b=%d\n",a,b);
return 0;
}
void Swap(int x,int y)// 传值
{
int temp=0;
temp=x;
x=y;
y=temp;
}
函数运行结果: a=10,b=20;
==并没有实现a,b数值的转换== ==跟主函数中的a ,b没有直接的关联,不可以改变值。== ==当实参传给形参的时候== ==形参其实是实参的一份临时拷贝== ==对形参的修改是不会改变实参的==
#include<stdio.h> int main() { int a=10; int b=20; //交换函数 swap() Swap1(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } int Swap1(int* x,int* y)// 传址 { int tmp=0; tmp=*x; *x=*y; *y=tmp; }
输出为:a=20,b=10
函数的调用 一、传值调用:==函数的形参和实参分别占有不同内存块,对形参的修改不会改变实参。== 二、传址调用:==把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式 这种传参的方式可以直接让函数与函数外部的变量建立起真正的联系,== ==也就是函数內部可以直接操作函数外部的变量。==
【感谢龙石数据为本站数据中台建设方案 http://www.longshidata.com/pages/government.html,感恩 】