Если в каком-либо блоке программы временно необходима только одна структурная переменная того или иного типа, то нет необходимости в использовании имени структуры. Такие структуры называются анонимными или безымянными и объявляются следующим образом:
struct {
float A;
double B;
int C[2];
} V;
Таким образом, в объявлении структуры может отсутствовать либо имя структурированного типа, либо список структурных переменных, но не оба одновременно.
Информация, содержащаяся в одной структурной переменной, может быть присвоена другой структурной переменной того же типа с помощью операции присваивания, то есть не нужно присваивать значение каждого поля по отдельности (что очень удобно). Следующая программа демонстрирует присваивание структурных переменных:
#include <stdio.h>
struct MyType {
float A;
double B;
int C[2];
};
void main()
{
MyType V1, V2;
// заполнение полей переменной V1
V1.A = 0.5;
V1.B = 3.6;
V1.C[0] = 45;
V1.C[1] = 90;
V2 = V1; // присваивание структурных переменных
// вывод полей переменной V2
printf (" %f ", V2.A);
printf (" %lf ", V2.B);
for(int i = 0; i < 2; i++)
printf (" %d ", V2.C[i]);
}
После присваивания поля переменой V2 будут содержать те же значения, что и поля переменной V1. Программа выдаст на экран:
0.5 3.6 45 90