在 Dennis M Richies 的书《C 编程语言》中,它谈到了指针,其中一个例子是交换两个指针:
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp
}
让我有点困惑的是*a = *b
。如果b
已经是传入的指针,为什么在将其分配给*a
之前需要取消引用?为什么 a = b
不能像它们的两个指针一样工作?
最佳答案
a = b
意味着您正在分配地址 b
至a
这不是正确的方法。
交换两个数字意味着你需要得到 value at that address
并且您必须交换该值。
所以正确的方法是 *a = *b;
即地址 b
处的值分配给地址 a
处的值.
关于交换指针时的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29912848/