sizeof()
Beschreibung
sizeof
gibt die Anzahl an Bytes in einem Variablentyp oder die Anzahl an Bytes eines Arrays zurück.Syntax
sizeof(variable)
Parameter
variable
: Erlaubte Datentypen: Beliebiger Datentyp.Rückgabewert
Die Anzahl der Bytes in einer Variablen oder die Bytes, die in einem Array belegt sind. Datentyp:
.size_t
Beispielcode
Der
sizeof
-Operator ist nützlich, um mit Arrays (wie z.B. Strings) umzugehen. Dort ist es Standard, dass die Größe des Arrays sich ändert, ohne dass das ganze restliche Programm umgeschrieben werden muss.Das Programm gibt einen Text zeichenweise aus. Versuche, den Text zu ändern, das Programm wird weiter funktionieren.
1// Definiere Text und Zählervariable2 char myStr[] = "this is a test";3
4 void setup() {5 // Initialisiere seriellen Port6 Serial.begin(9600);7 }8
9 void loop() {10 // Laufe über das Array (den String), egal, wie lange dieser ist11 for (byte i = 0; i < sizeof(myStr) - 1; i++) {12 // Gib die Zeichennummer als Dezimalzahl aus13 Serial.print(i, DEC);14 // Gib ein Gleichheitszeichen aus15 Serial.print(" = ");16 // Gib das Zeichen des Strings an Stelle "i" aus17 Serial.write(myStr[i]);18 // Schreibe eine neue Zeile19 Serial.println();20 }21 delay(5000); // Warte 5 Sekunden22 }
Anmerkungen und Warnungen
sizeof
gibt die Anzahl an Bytes zurück. Für Arrays größerer Variablentypen, wie z.B. int
, sieht die Schleife wie folgt aus:1int myValues[] = {123, 456, 789};2 // Diese for-Schleife funktioniert ordnungsgemäß mit einem Array eines beliebigen Typs und jeder Größe3 for (byte i = 0; i < (sizeof(myValues)/sizeof(myValues[0])); i++) {4 // Tue etwas mit myValues[i]5 }
Beachte zusätzlich, dass ein richtig formattierter
String
mit dem NULL
-Symbol beendet wird, also dem ASCII-Zeichen mit Nummer 0.Siehe auch
Suggest changes
The content on docs.arduino.cc is facilitated through a public GitHub repository. If you see anything wrong, you can edit this page here.
License
The Arduino documentation is licensed under the Creative Commons Attribution-Share Alike 4.0 license.