L-hodnota a hodnota výrazů
Výrazy, které odkazují na umístění v paměti se nazývají výrazy "l hodnota".L hodnota představuje hodnotu "vyhledávač" úložiště regionu nebo "left" hodnotu, zdání může zobrazit na levé straně znaménko rovná se (=).L-hodnoty jsou často identifikátory.
Výrazy odkazující na upravitelné umístění se nazývají "upravitelné l hodnoty. Upravitelné l hodnota nemůže být typu pole, neúplné typ nebo typ s const atributu.Struktury a unií se měnit hodnoty l, musí mít nejsou všechny členy s const atributu.Název identifikátoru označuje umístění úložiště, zatímco hodnotu proměnné hodnoty uložené v daném umístění.
Identifikátor je měnit hodnotu l odkazuje na umístění v paměti a její typ je aritmetický, struktura, unie nebo ukazatel.Například pokud ptr ukazatel myši do oblasti úložiště je pak *ptr je upravitelná l hodnota, která určuje oblast úložiště, které ptr bodů.
Jeden z následujících výrazů c lze hodnotu l výrazy:
Identifikátor integrál, plovoucí, ukazatele, struktury nebo typ union
Index ([]) výraz nelze vyhodnotit na matici
Výběr členů výraz (– > nebo .)
Nepřímé odkazování unární (*) výraz, který neodkazuje na matici
Výraz hodnotu l v závorkách
A b objektu (nonmodifiable l hodnota)
Termín "hodnota" se někdy používá k popisu hodnota výrazu a odlišit od l hodnota.Všechny hodnoty l jsou hodnoty r, ale ne všechny hodnoty r l hodnoty.
Konkrétní společnosti Microsoft
Microsoft c zahrnuje rozšíření standardu ANSI C, umožňující nádech l hodnoty jako l hodnoty, jako velikost objektu není reflektují prostřednictvím tavby.(Viz Převody typu Cast Další informace.) Následující příklad ukazuje tato funkce:
char *p ;
short i;
long l;
(long *) p = &l ; /* Legal cast */
(long) i = l ; /* Illegal cast */
Výchozí nastavení pro Microsoft C je, že jsou povolena rozšíření Microsoft.Pomocí možnosti kompilátoru /Za zakázat těchto rozšíření.
Konec konkrétní společnosti Microsoft