用另一个元素交换一个结构元素的数组

时间:2012-08-23 19:50:07

标签: c arrays struct swap

我正在尝试交换一个结构数组,我认为遵循类似的方式存储在temp中会像这样工作:

int temp ,a, b;
temp = a;
a = b;
b = temp;

我的结构定义数组是:

struct storage data[10];

我试图交换一组结构,我试过这个:

struct storage temp[1];
temp = data[1];
data[1] = data[2];
data[2] = temp;

不幸的是,它没有编译

我的错误如下:

错误#2168:'='的操作数具有不兼容类型的struct storage [1]'和'struct storage'。

错误#2088:需要左值。

错误#2168:'='的操作数具有不兼容类型'struct storage'和'struct storage *'。

2 个答案:

答案 0 :(得分:5)

在C数组中不是可修改的左值。删除[1],然后设置:

struct storage temp;

答案 1 :(得分:1)

您正试图保留一个结构存储,当您说

时,您将取消引用该结构存储

temp = data [1];

您需要声明临时变量,以保存数组中的解除引用值

struct storage temp;