Всем привет. Вот код:
#include <stdio.h>
struct student {
char name[20];
char sname[20];
int age;
};
struct teacher {
struct student ex_student;
char prof[20];
float money;
int temp;
};
int main(void) {
struct teacher mr_evil = {
{"Fiodor","Sumkin",34},
"Runner",400.75,567
};
printf("mr_evil:\n.prof: %s\n.money: %f\n.temp: %d\n",mr_evil.prof,mr_evil.money,mr_evil.temp);
scanf("%s",&mr_evil.prof);
mr_evil.money = 45.4;
mr_evil.temp = 444;
printf("mr_evil:\n.prof: %s\n.money: %f\n.temp: %d\n",mr_evil.prof,mr_evil.money,mr_evil.temp);
mr_evil.prof = "doomer"; //тут ошибка
return 0;
}
Мне не понятно, почему я могу менять char массив с помощью scanf, а простым присваиванием не получается. А вот с int и float присваивание работает... (ошибка:
error C2106: '=' : left operand must be l-value, MS VC++ 6.5) Подскажите, как мне изменять подобные элементы структур в программах?