Выражения 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 отключить эти расширения.
ЭЛЕМЕНТ, относящийся Майкрософт