1. 贴出错误代码:
'//看起来下面这个函数没有问题,其实这个函数是错误的。main函数中的a,b和swap函数中的x,y变量都有独立的内存空间。'
'//swap函数只交换了x,y的值,但是对main函数中a,b变量没有影响。'
void swap(int x, int y)
{
int tmp = x;
x = y;
y = tmp;
}
int main()
{
int a = 10;
int b = 20;
printf("初始值:a= %d, b=%dn", a, b);
swap(a, b);
printf("交换后:a= %d, b=%dn", a, b);
return 0;
}
- 结果如下:结果是错误的
2. 贴出正确代码
'//正确的写法应该是这样:'
void swap(int* pa, int* pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
int main()
{
int a = 10;
int b = 20;
printf("交换前:a=%d, b=%dn", a, b);
swap(&a, &b);
printf("交换后:a=%d, b=%dn", a, b);
return 0;
}



