练习:封装一个函数,实现两个数的交换
没用指针的方法:
```
# include <stdio.h>
int main()
{
int data = 10;
int data2 = 20;
int tmp;
printf("交换前:data=%d, data2=%d\n", data, data2);
tmp = data;
data = data2;
data2 = tmp;
printf("交换后:data=%d,data2=%d\n",data,data2);
return 0;
}
```
这个时候如果用函数的方法,交换的是changData函数,main函数里的值从始至终没有变化:
# include <stdio.h>
void changData(int data,int data2)
{
int tmp;
tmp = data;
data = data2;
data2 = tmp;
}
int main()
{
int data = 10;
int data2 = 20;
printf("交换前:data=%d, data2=%d\n", data, data2);
changData(data, data2);
printf("交换后:data=%d,data2=%d\n",data,data2);
return 0;
}
此时data和data2没有交换。因此要用指针
```
# include <stdio.h>
void changData(int *pdata,int *pdata2)
{
int tmp;
tmp = *pdata;
*pdata = *pdata2;
*pdata2 = tmp;
}
int main()
{
int data = 10;
int data2 = 20;
printf("交换前:data=%d, data2=%d\n", data, data2);
changData(&data, &data2);
printf("交换后:data=%d,data2=%d\n",data,data2);
return 0;
}
```