C语言指针使用函数交换两个变量的值
C语言指针使用函数交换两个变量的值为什么前面的值和后面的值不一样,如果能使后面的值和前面的值一样?...
C语言指针使用函数交换两个变量的值为什么前面的值和后面的值不一样,如果能使后面的值和前面的值一样?
展开
1个回答
展开全部
这个地方会出现不好理解的东西。
调用函数的时候,你放入了int
a
int
b
但是这其实不是你的main函数中的a
b只是相当于他们的副本,也就是复制了一个a
和b
传入函数
所以你改变的只是传入的副本
也就是复制的副本a
b所以在main函数中打印的ab不会出现变化
依然是a=3,b=6
现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a
b的指针,然后吧指针传入到函数里面
这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值。想要理解,可以去百度传值参数和引用参数。纯手打,望采纳
调用函数的时候,你放入了int
a
int
b
但是这其实不是你的main函数中的a
b只是相当于他们的副本,也就是复制了一个a
和b
传入函数
所以你改变的只是传入的副本
也就是复制的副本a
b所以在main函数中打印的ab不会出现变化
依然是a=3,b=6
现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a
b的指针,然后吧指针传入到函数里面
这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值。想要理解,可以去百度传值参数和引用参数。纯手打,望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询