#include <malloc.h>
#include <string.h>
#include <ctype.h>
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
void main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d", a, b);
}
结果为3 6
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <ctype.h>
void fun(int *a, int *b)
{ int *k;
k=a;a =b; b=k;
printf("%x\n",a);
printf("%x\n", b);
printf("%d\n",*a);
printf("%d\n", * b);
}
void main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d\n", a, b);
printf("%x\n",&a);
printf("%x\n",& b);
也许这个就比较好理解,他本身的内容没有改变 。
以下这些是会改变的
例一
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <ctype.h>
void fun(int *a, int *b)
{
int k;
k=*a;
*a=*b;
*b=k;
}
void main()
{
int a=3,b=6;
fun(&a,&b);
printf("%d %d\n", a, b);
}
这里交换的是内容
1317

被折叠的 条评论
为什么被折叠?



