A struct initializer fills fields when the value is created.

Struct Initialization

struct_initialization.c
#include <stdio.h>

struct Product {
    int price;
    int count;
};

int main(void) {
    int price = ;
    struct Product item = {price, 3};
    int total = item.price * item.count;

    printf("total=%d\n", total);
    return 0;
}
#include <stdio.h>

struct Product {
    int price;
    int count;
};

int main(void) {
    int price = ;
    struct Product item = {price, 3};
    int total = item.price * item.count;

    printf("total=%d\n", total);
    return 0;
}
#include <stdio.h>

struct Product {
    int price;
    int count;
};

int main(void) {
    int price = ;
    struct Product item = {price, 3};
    int total = item.price * item.count;

    printf("total=%d\n", total);
    return 0;
}
initializer The initializer values are copied into the struct fields.
field order Without designators, initializer values follow the field declaration order.