为什么传址和传值后,打印出来的的都是3,5?
#include <stdio.h>void fun( int *a,int *b)
{
int *c; c=a;a=b;b=c;
}
main()
{
int x=3, y=5, *p=&x, *q=&y ;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y); printf("%d,%d\n",*p,*q);
}
第二个传址,打印出来的不应该是5,3 吗? 在fun函数中,你交换的是指针,而不是指针的值,要写成这样void fun( int *a,int *b)
{
int c; c=*a;*a=*b;*b=c;
} 你在逗我,栈上交换一下有啥意思
页:
[1]