Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Uttryck som refererar till minnesplatser kallas "l-value"-uttryck. Ett l-värde representerar ett värde för lagringsregionens "positionerare" eller ett "vänster"-värde, vilket innebär att det kan visas till vänster om likhetstecknet (=). L-värden är ofta identifierare.
Uttryck som refererar till ändringsbara platser kallas "ändringsbara l-värden". Ett ändringsbart l-värde kan inte ha en matristyp, en ofullständig typ eller en typ med const attributet. För att strukturer och fackföreningar ska vara ändringsbara l-värden får de inte ha några medlemmar med attributet const . Namnet på identifieraren anger en lagringsplats, medan värdet för variabeln är värdet som lagras på den platsen.
En identifierare är ett ändringsbart l-värde om det refererar till en minnesplats och om dess typ är aritmetik, struktur, union eller pekare. Om till exempel ptr är en pekare till en lagringsregion är det *ptr ett ändringsbart l-värde som anger den lagringsregion som ptr pekar på.
Något av följande C-uttryck kan vara l-value-uttryck:
En identifierare för integral, flytande, pekare, struktur eller unionstyp
Ett nedsänkt uttryck (
[ ]) som inte utvärderas till en matrisEtt medlemsvalsuttryck (
->eller.)Ett unary-indirection-uttryck (
*) som inte refererar till en matrisEtt l-värdeuttryck inom parenteser
Ett
constobjekt (ett icke-modifierat l-värde)
Termen "r-value" används ibland för att beskriva värdet för ett uttryck och för att skilja det från ett l-värde. Alla l-värden är r-värden, men inte alla r-värden är l-värden.
Microsoft-specifik
Microsoft C innehåller ett tillägg till ANSI C-standarden som gör att avgjutningar av l-värden kan användas som l-värden, så länge objektets storlek inte förlängs genom gjutningen. Mer information finns iType-Cast Konverteringar. I följande exempel visas den här funktionen:
char *p ;
short  i;
long l;
(long *) p = &l ;       /* Legal cast   */
(long) i = l ;          /* Illegal cast */
Standardvärdet för Microsoft C är att Microsoft-tilläggen är aktiverade. Använd kompilatoralternativet /Za för att inaktivera dessa tillägg.
Avsluta Microsoft Specifik