Unterschied von '0' und "0"
-
FrEEzE2046 schrieb:
Ich sagte nur, dass "letztendlich" (praktisch) ein char[25] trotzdem eine Adresse ist
Ja, habe ich schon verstanden, was Du sagen willst. Ist aber falsch. Ein Lvalue-Ausdruck, welcher sich auf ein Array bezieht, kann in Kontexten verwendet werden, in denen eine Adresse benötigt wird. Hier findet dann ein automatisches "array-to-pointer decay" statt welches die Adresse (= Wert eines Zeiger-Typs) auf das erste Element liefert. Trotzdem ist ein Array kein Zeiger und auch keine Adresse. Da kannst Du noch soviele Qualifizierer (praktisch, implizit, aus logischer Sicht, letztendlich...) benutzen, das macht Deine Aussage nicht weniger falsch. Es ist auch keine Erbsenzählerei. Im Gegenteil. Ich finde das, was Du da von Dir gibst, unverantwortlich. Der unerfahrene Programmierer könnte Dir ja noch den Unsinn glauben und sich später wundern, warum
sizeof(char[25]) != sizeof(char*)gilt, oder warum auf einmal die Template-Argument-Deduction bei Arrays "ganz komisch" funktioniert. Dann kommen wieder Sprüche wie "Ich dachte ein Array sei nur ein Zeiger" etc etc etc. Das Array/Zeiger Thema bereitet Anfängern schon genug Probleme. Da brauchst Du nicht auch noch anfangen, Array=Zeiger oder Array=Adresse zu behaupten.
-
FrEEzE2046 schrieb:
Ich sagte nur, dass "letztendlich" (praktisch) ein char[25] trotzdem eine Adresse ist, an der eine 25 Byte Zeichenkette liegt.
Letztendlich ist JEDES OBJEKT nur ein Zeiger auf eine definierte Menge Bytes. Daher ist diese Argumentation völliger Unsinn.
Grüssli