Arrays und Zeiger sind in C nicht dasselbe, obwohl sie verwandt sind und auf ähnliche Weise verwendet werden können. Bisher sind wir uns alle einig.
Ich verstehe jedoch nicht, warum Arrays in C enthalten waren, wenn Zeiger ihre Arbeit perfekt hätten erledigen können.
Ich sage nicht, die Array-Notation zu entfernen (z. B. a [5] oder int a [4] = {0,1,2,3};), was sehr nützlich und praktisch ist. Aber Sie könnten dieselbe Notation als kosmetische Maßnahme auch auf Zeigern verwenden (wie dies der Fall ist). Die Array-Notation ist also kein Grund, Arrays zu haben, sondern nur die Notation!
Der einzige Unterschied, den ich sehe, ist, dass Arrays konstante Zeiger sind und die Größe des Speichers, auf den sie zeigen, nicht geändert werden kann. Dies kann aber auch mit Zeigern erreicht werden, indem sie genau konstant gemacht werden (der Speicher hätte keine feste Größe, aber ich bin mir nicht sicher, ob dies ein Problem ist).
Warum also nicht nur Zeiger haben und den Programmierer entscheiden lassen, wie sich der Zeiger verhalten soll (dh konstant, nicht konstant, feste Größe, variable Größe usw.)?
x = a + b * 2;
wenn Sie dasselbe mit einer Folge einfacher Ausdrücke wie erreichen könnten x = b; x*=2; x+=a;
?