C - 访问结构中的变量

时间:2014-03-03 00:03:09

标签: c pointers struct reference

我有一个带有变量Item的结构value1,我将这个结构的实例放在队列中。我现在想查看队列并获取结构实例中保存的数据。

以下代码按预期工作。

Item *itemHead = queue_peek_head(itemQueue);
printf("Head: %d\n", itemHead->value1);

但是,我想做同样的事情,最好没有像itemHead这样的额外变量。有没有办法做到这一点?我的原始思路让我看到了下面的代码,正如我所知,它不起作用(取消引用void *指针,无效的void表达式)。

*(queue_peek_head(itemQueue))->value1; //doesn't give me value1

任何人都可以从队列中的第一个value1中提取(最好是一行)方式来访问Item吗?

1 个答案:

答案 0 :(得分:2)

((Item*)queue_peek_head(itemQueue))->value1

编译器需要知道类型才能访问结构的成员。

(另外,你不会做*(somePointer)->,除非有一个指向指针的指针,那里有两个解引用。)