教科书上面有个比较经典的交换数字的问题。
如果以下面的 A表达式
int swap(int a, intb);
那么结果是a/b不能互换
如果想要达到a/b互换的小姑,只能以B的形式
int swap(int *a, int *b);
老师就老是告诉我们,因为这个时候需要传入指针,才会有效。一直以来都是在懵懂之间,知其然而不知其所以然。
今天忽然想到,于是打算从汇编的角度分析这个问题。
选的例子有点不同,看下面的代码:
这段程序运行后打印的结果是 b,b
这个说明了pa交换成功了而对pb的赋值实质上是没有影响到调用test函数的实参的。
这个中间是为什么呢?
在调用