You actually need to kind of do this and then you can swap these two numbers but it requires 50 percent more memory.
你实际上需要这样做,然后才能交换两个数字,但是它需要多50%的内存。
So when I said earlier that as soon as swap returns, all of the memory allocated for swap is now useless.
我前面指明的,一旦swap返回,所有为swap分配的内存都是无用的了。
But the moment swap returns, the moment we hit this bottom most curly brace, what conceptually happens in memory?
但是swap返回时,当我们抵达花括号底端是,在内存中发生了什么?
Now finally swap has the ability, the power, to modify memory that isn't his own, that's not in his own scope because we've passed it in by address.
最终swap有能力,来修改不属于它的内存,不在它的作用域中,因为我们是通过地址传递的。
So A gets 1, B gets 2, now the swap function itself starts executing line by line; so I declare a chunk of memory called temp.
所以A等于1,B等于2,现在swap函数自己开始,一行一行地执行,所以我声明了,叫做temp的一块内存。
So swap has three chunks of memory.
所以swap占有三块内存。
X That's just the special symbol in C that says don't pass X, that is don't pass a copy of X. Rather figure out where x is in memory, where he is in that frame and provide swap the numeric address in RAM of that value so that swap can go do anything it wants at that address.
这在C中是一个特殊的符号,指明不传送,也不是传递X的拷贝,而是指出x在内存中哪个地方,它在那个框架中的哪个地方,提供给swap它的地址值,这样swap就可以使用那个地址中的数据。
应用推荐