【问题标题】:C - Accessing variables in a structC - 访问结构中的变量
【发布时间】:2014-03-03 00:03:08
【问题描述】:

我有一个结构体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

谁能想出一种(最好是一行)从队列中的第一个Item 访问value1 的方法?

【问题讨论】:

    标签: c pointers struct reference


    【解决方案1】:

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

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

    (另外,除非有指向指针的指针,否则你不会这样做 *(somePointer)->,那里有两个取消引用。)

    【讨论】:

    • 谢谢!我仍在掌握指针等,非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多