EDIT - question is answered in comments.
I've been browsing cppreference.com
and found a certain piece of code and ended up with the following after a little elaboration on it:
#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
", d);
}
The question that relates to the topic is on the line with the first comment. I do kinda understand what's happening (i guess) but the syntax is not clear for me - could someone elaborate on it please?
Additional question (if possible to have two) is about the line with the second comment - so, i can use a return value of a function just as is in an expression, like in a given example?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…