Wenn Sie an einem operator precedence table for C++ betrachten, werden Sie feststellen, dass Array Indizierung []
höher Vorrang vor Zeiger Dereferenzierung *
. Das ist also was passiert.
table
ist ein Array von Zeigern. Die Zeiger im Array zeigen auf das erste Zeichen einer Zeichenfolge. Das nächste Zeichen in der Zeichenfolge ist einfach das nächste Zeichen im Speicher. Das Ende des Strings ist das erste Zeichen, dessen Wert (als Integer) 0 ist und als Nullterminator bezeichnet wird.
Wenn Sie auf table[1]
zugreifen, erhalten Sie das Element im Array bei Index 1, ein Zeiger auf ein Zeichen, das eine Zeichenfolge darstellt. Wenn Sie auf *table[1]
zugreifen, erhalten Sie das Element im Array bei Index 1, einen Zeiger auf ein Zeichen, und dann den Zeiger dieses Dereferenzieren, um das Zeichen zu erhalten, auf das es zeigt.
Haben Sie nur 'table [1]' versucht? – stark
Es funktioniert, warum? Wie unterscheidet es sich von * Tabelle [1]? – Mikkey
Und ich muss auf * Tabelle [] arbeiten, weil die Funktion main solche Parameter haben. Ich versuchte, es auf dem anderen Tisch zu streichen, aber es sagte, dass die Typen nicht übereinstimmen – Mikkey