(C99)复合字面量

#include <stdio.h>

struct argvs
{
    char a[64];
    int b;
};

int pfunc(struct argvs *a)
{
    printf("argvs.a=%s argvs.b=%d
", a->a, a->b);
}

int func(struct argvs a)
{
    printf("argvs.a=%s argvs.b=%d
", a.a, a.b);
}

int main(int argc, char *argv[])
{
    struct argvs a =
    {
        .a = "liming",
        .b = 23
    };

    int *pa = (int []){1,2};

    printf("pa[0]=%d
", pa[0]);

    pfunc(&a);

    func((struct argvs) {"liming", 24});

    //pfunc((struct argvs) {"liming", 24}); //非法

    return 0;
}

原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007349.html