О стоимости первого, второго и третьего класса

Первый класс значение может быть

в качестве аргументавернулся из подпрограммыназначен в переменную.

Второй класс значение просто может быть передано в качестве аргумента.

Третий класс значение даже не может быть передано в качестве аргумента.

Почему эти вещи должны быть определены так? Как я понимаю, «может быть передан в качестве аргумента» означает, что он может быть помещен в стек времени выполнения; «может быть назначен в переменную» означает, что он может быть перемещен в другое место в памяти; «может быть возвращен из подпрограммы» почти имеет то же значение, что и «может быть назначен переменной», поскольку возвращаемое значение всегда помещается в известный адрес, поэтому значение первого класса является полностью «подвижным» или «динамическим», второй класс значение наполовину «подвижно», а значение третьего класса просто «статично», например, метки в C / C ++, к которым можно обратиться с помощью оператора goto, и вы ничего не можете сделать с этим адресом, кроме «goto». понимание имеет смысл? или что именно означают эти три вида значений?

Ответы на вопрос(4)

Ваш ответ на вопрос