[] geht natürlich auch
Bei Verwendung als Funktionsparameter ist beides exakt dasselbe.
- In beiden Fällen ist die Array-Größe unbekannt
- In beiden Fallen kann auf die eigentlichen Daten auf beide Arten zugegriffen werden:
x[ i ]oder*(x+i)
Es gibt natürlich Fälle, wo der Unterschied sichtbar wird:
char *x = "Text1";
char y[] = "Text2";
void setup() {
Serial.begin(9600);
Serial.println(sizeof(x)); // 2
Serial.println(sizeof(y)); // 6
x+=3;
// y+=3; // (Geht nicht) error: incompatible types in assignment of 'int' to 'char [6]'
Serial.println(x); // "t1"
Serial.println(y+3); // "t2" (Dies geht)
x = y+3; // auch ok
Serial.println(x); // "t2"
}
void loop() { }