黑马程序员技术交流社区
标题:
指针问题求大神解答
[打印本页]
作者:
745960689
时间:
2016-3-15 00:47
标题:
指针问题求大神解答
void test(int * num1,int * num2)
{
int * temp = num1;
num1 = num2;
num2 = temp;
}
int main ()
{
int num1 =5;
int num2 =3;
test(&num1,&num2);
}
输出居然num1还是5,num2还是三,
在函数里面不是两个指针不是交换了地址了吗。所以函数里的num1指针应该只想的是num2啊。怎么还是指num1啊
作者:
冷傲阳
时间:
2016-3-15 21:45
是这样的,你在man函数中调用了test函数,里面的num1和mun2的实参传递给了test方法,
test方法里面的num1和num2是test方法里的局部变量,你在方法里面改变了指向,也只是改变了这两个局部变量的指向,这两个变量的作用域仅限在test方法里面,方法结束后局部变量的空间被释放,man函数里面的num1和num2是不会改变的
void test(int * num1,int * num2)
{
int temp = *num1;
*num1 = * num2;
*num2 = temp;
}
int main ()
{
int num1 =5;
int num2 =3;
test(&num1,&num2);
printf("num1=%d,num2=%d",num1,num2);
}
这样就行了
作者:
冷傲阳
时间:
2016-3-15 21:46
不知道我解释的清不清楚
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2