首页 > 解决方案 > 我可以转换成结构吗?

问题描述

编辑- 问题在评论中得到回答。

我一直在浏览cppreference.com并找到一段代码,并在对其进行了一些详细说明后得到以下结果:

#include <stdio.h>

struct T { double a[4] };

struct T f(void) { return (struct T){3.15}; }    //Is that casting into struct T?? 
                                                 //But isn't casting into non-scalar not possible?

int main (void)
{
    double d = *f().a;                           //What?
    printf("%f\n", d);
}

与该主题相关的问题与第一条评论一致。我有点明白发生了什么(我猜),但语法对我来说不清楚 - 有人可以详细说明一下吗?

附加问题(如果可能有两个)是关于第二条注释的行 - 所以,我可以像在表达式中一样使用函数的返回值,就像在给定的例子中一样?

标签: ccasting

解决方案


推荐阅读