OK,我说一下这个代码哈
1.
#include<stdio.h>
void fun( int *a, int *b )
{
int *k;
k = a; a = b; b = k;
}
int main()
{
int a = 3, b = 6, *x = &a, *y = &b;
fun( x, y );
printf( "%d,%d ", a, b );
}
最后输出的是: 3,6
然后改了一下
#include<stdio.h>
void fun( int *a, int *b )
{
int k;
k = *a; *a = *b; *b = k;
}
int main()
{
int a = 3, b = 6, *x = &a, *y = &b;
fun( x, y );
printf( "%d,%d ", a, b );
}
输出的是: 6,3
改的地方是这里
k = a; a = b; b = k;
为啥一个是交换的是地址,一个交换的是数
结果就是不一样呢