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.
Operatorn sizeof ger mängden lagringsutrymme i byte som krävs för att lagra ett objekt av typen operand. Med den här operatorn kan du undvika att ange datorberoende datastorlekar i dina program.
Syntax
sizeof unary-expression
sizeof ( type-name )
Anmärkningar
Operand är antingen en identifierare som är ett unary-expression eller ett type-cast-uttryck (det vill: en typspecificerare omgiven av parenteser). Unary-uttrycket kan inte representera ett bitfältsobjekt, en ofullständig typ eller en funktionsdesignator. Resultatet är en osignerad integralkonstant. Standardrubriken STDDEF. H definierar den här typen som size_t.
När du tillämpar operatorn på sizeof en matrisidentifierare blir resultatet storleken på hela matrisen i stället för storleken på pekaren som representeras av matrisidentifieraren.
När du tillämpar operatorn sizeof på ett struktur- eller unionstypnamn, eller på en identifierare av struktur- eller unionstyp, blir resultatet antalet byte i strukturen eller facket, inklusive intern och avslutande utfyllnad. Den här storleken kan innehålla intern och avslutande utfyllnad som används för att justera medlemmarna i strukturen eller unionen efter minnesgränser. Resultatet kanske därför inte motsvarar den storlek som beräknas genom att lägga till lagringskraven för de enskilda medlemmarna.
Om en icke-anpassad matris är det sista elementet i en struktur returnerar operatorn sizeof strukturens storlek utan matrisen.
buffer = calloc(100, sizeof (int) );
I det här exemplet används operatorn sizeof för att överföra storleken på en int, som varierar mellan datorer, som ett argument till en körningsfunktion med namnet calloc. Värdet som returneras av funktionen lagras i buffer.
static char *strings[] = {
      "this is string one",
      "this is string two",
      "this is string three",
   };
const int string_no = ( sizeof strings ) / ( sizeof strings[0] );
I det här exemplet strings är en matris med pekare till char. Antalet pekare är antalet element i matrisen, men har inte angetts. Det är enkelt att fastställa antalet pekare med hjälp av operatorn sizeof för att beräkna antalet element i matrisen. Heltalsvärdet conststring_no initieras till det här talet. Eftersom det är ett const värde kan string_no det inte ändras.
Se även
              C-operatorer
              C++ Inbyggda operatorer, prioritet och associativitet