1

我正在尝试交换一个结构数组,我认为按照类似的方式存储在临时文件中会像这样工作:

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*'。

4

2 回答 2

5

在 C 中,数组不是可修改的左值。放下[1],你就设置好了:

struct storage temp;
于 2012-08-23T19:53:14.873 回答
1

你试图持有一个结构存储,当你说时你取消引用

温度=数据[1];

You need to declare your temp variable as such to hold the dereferenced values from the array

struct storage temp;

于 2012-08-23T19:56:35.480 回答