好吧,我已经四处搜索,没有什么可以解释这会在第 2 行和第 3 行产生“错误:左值需要作为赋值的左操作数”。当然我已经尝试了一些替代语句但没有任何效果而且我不明白为什么编译器不接受它。 arr 是一个指针数组,这是一个简单的交换。
player tmp = *(arr+i);
arr+i = (*(arr+i+1));
(arr+i+1) = &tmp;
最佳答案
使用 [] 语法可能会更容易:
player tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
如果您坚持使用 *(arr+i) 语法:
player tmp = *(arr+i);
*(arr+i) = *(arr+i+1);
*(arr+i+1) = tmp;
关于c - 错误 : lvalue required as left operand of assignment in a swap with pointers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051733/