Выражения L- Значения и Значения R-

Выражения, которые относятся к участкам памяти, называются "выражениями l-значением".L-значение представляет значение "локатора области хранения" или "left" значение подразумевая, что оно может находиться слева от знака равенства (=).Часто идентификаторы левостороннего значения.

Выражения при ссылке на изменяемые расположения называются "является изменяемым l-значениями". Изменяемые l-значение не может иметь тип массива, неполный тип или тип с Const атрибут.Для структур и соединений, который должен быть изменяемыми l-значениями, они не должны иметь все элементы с Const атрибут.Имя идентификатора обозначает место хранения, а значение переменной значение, хранящееся в этом расположении.

Идентификатор изменяемые l-значение, если он указывает на расположение в памяти, и если его тип арифметическ, структура, объединение или указатель.Например, если ptr указатель на область store, затем *ptr изменяемые l-значение, которое определяет область хранения, к которой ptr пункты.

Следующие выражения c# могут быть выражениями левостороннего значения.

  • Целочисленные, идентификатор перемещаемого, указателей, структуры или объединения

  • Индекс ([]) выражение, не дает в массив

  • Выражение (участник-выделения- > OR .)

  • (Унарн-косвенность*****) выражение, которое не относится к массиву

  • Левостороннее выражение в скобках

  • A Const объект немодифицируемое l-значение)

Термин "правостороннего значения" иногда используется для описания и отличать его от значения выражения левостороннего значения.Все значения r l-значением, но не все значения r левостороннего значения.

Только для систем Microsoft

Microsoft c# включает расширение к стандарту ANSI c, позволяющий преобразования l-значений, используемое в качестве левостороннего значения, если размер объекта не расширен посредством приведения.(См. Преобразования приведения типов дополнительные сведения). Следующий пример иллюстрирует эту функцию.

char *p ;
short  i;
long l;

(long *) p = &l ;       /* Legal cast   */
(long) i = l ;          /* Illegal cast */

Значение по умолчанию для microsoft c#, что включены расширения microsoft.Используйте параметр компилятора /Za отключить эти расширения.

ЭЛЕМЕНТ, относящийся Майкрософт

См. также

Основные понятия

Операнды и выражения