1个回答
展开全部
C)函数的参数值不能返回
eg:
#include <stdio.h>
void swap(int *a,int *b)
{
int t;
t = * a;
*a = * b;
*b = t;
a=NULL;
b=NULL;
}
void main()
{
int a=1,b=2;
int *pa=&a,*pb=&b;
printf("pa=%x ,*pa=%d . pb=%x , *pb=%d\n",pa,*pa,pb,*pb);
swap(pa,pb);
printf("pa=%x ,*pa=%d . pb=%x , *pb=%d\n",pa,*pa,pb,*pb);
}
输出:
pa=240ff5c ,*pa=1 . pb=240ff58 , *pb=2
pa=240ff5c ,*pa=2 . pb=240ff58 , *pb=1
说明:
调用函数 swap 是,实参是 指针 pa,pb。
调用后,pa,pb 的值没有变,而是pa,pb指向的内存单元的值发生改变。
eg:
#include <stdio.h>
void swap(int *a,int *b)
{
int t;
t = * a;
*a = * b;
*b = t;
a=NULL;
b=NULL;
}
void main()
{
int a=1,b=2;
int *pa=&a,*pb=&b;
printf("pa=%x ,*pa=%d . pb=%x , *pb=%d\n",pa,*pa,pb,*pb);
swap(pa,pb);
printf("pa=%x ,*pa=%d . pb=%x , *pb=%d\n",pa,*pa,pb,*pb);
}
输出:
pa=240ff5c ,*pa=1 . pb=240ff58 , *pb=2
pa=240ff5c ,*pa=2 . pb=240ff58 , *pb=1
说明:
调用函数 swap 是,实参是 指针 pa,pb。
调用后,pa,pb 的值没有变,而是pa,pb指向的内存单元的值发生改变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询