Почему можно назначить значение полю структурного временного объекта?

Читаю Эккеля, запутался.

struct test {
	int i[10];
};

struct test foo(void) {
	struct test var;
	var.i[0] = 123;
	return var;
}

struct test const fooc(void) {
	struct test var;
	var.i[0] = 123;
	return var;
}

int main(){
	struct test A;

	A = foo();
	A = fooc();

	//! foo() = A; // понятно почему не ок в с и ок в с++ 
	//! fooc() = A;// понятно почему не ок в с и не ок в с++ 

	foo().i[0] = 1; // непонятно почему это ок в с и ок в с++
	fooc().i[0] = 1;// непонятно почему это ок в с
}
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы