c - 错误 : lvalue required as left operand of assignment in a swap with pointers

标签 c arrays pointers

好吧,我已经四处搜索,没有什么可以解释这会在第 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/

相关文章:

c - 在 C 中使用多个名称引用变量

javascript - 获取javascript中具有最高值的数组键

arrays - 如何将数组转换为逗号分隔的字符串?

javascript - 如何将用户输入存储在数组中

C 计算一串数字中出现次数最多的数字

c - 在函数内动态分配结构体数组

C++如何使虚函数返回任何类型的指针?

c - gcc 复杂常量折叠

已编译的 Vala 应用无法运行 - Elementary OS

c - C 中信号的进程间通信 - 为什么会失败?