代码
#include<stdio.h>
#define SWAP(a,b) {int t=a;a=b;b=t;} //宏定义一个swap函数
int main()
{
int x = 1; int y = 2;
printf("x=%d,y=%d \n", x,y);
SWAP(x,y);
printf("x=%d,y=%d \n", x,y);
printf("\n");
return 0;
}
运行结果:
函数中 形参的值只会在该函数内时值会发生改变,跳出函数值将无效。
代码:
#include<stdio.h>
//#define SWAP(a,b) {int t=a;a=b;b=t;} //宏定义一个swap函数
void swap(int a,int b)
{
int t=a;a=b;b=t;
}
#include<stdio.h>
//#define SWAP(a,b) {int t=a;a=b;b=t;} //宏定义一个swap函数
int swap(int a,int b)
{
int t=a;a=b;b=t;
return a,b;
}
int main()
{
int x = 1; int y = 2;
printf("x=%d,y=%d \n", x,y);
swap(x,y);
printf("x=%d,y=%d \n", x,y);
return 0;
}
运行结果:
若函数有返回值,调用函数即可得到你所要的返回值,.
但是,实参和形参之间仅仅是值传递,因此函数无法调用实参。
因此 swap() 函数均实现不了交换的功能。