Array dan pointer bukan hal yang sama dalam C, meskipun mereka terkait dan dapat digunakan dengan cara yang sama. Sejauh ini kita semua sepakat.
Namun, saya tidak melihat mengapa array dimasukkan dalam C, ketika pointer bisa melakukan pekerjaan mereka dengan sempurna.
Saya tidak mengatakan untuk menghapus notasi array (misalnya, a [5] atau int a [4] = {0,1,2,3};), yang cukup berguna dan nyaman. Tetapi Anda dapat memiliki notasi yang sama bekerja di atas pointer (seperti halnya), sebagai ukuran kosmetik. Jadi notasi array bukan alasan untuk memiliki array, hanya notasi!
Satu-satunya perbedaan yang saya lihat adalah array adalah pointer konstan, dan ukuran memori yang mereka tunjuk tidak dapat diubah. Tapi ini bisa dicapai dengan pointer juga, tepatnya dengan membuatnya konstan (memori tidak akan berukuran tetap, tapi saya tidak yakin apakah ini masalah).
Jadi mengapa tidak hanya memiliki pointer dan biarkan programmer memutuskan bagaimana pointer harus berperilaku (yaitu, konstan, bukan konstan, ukuran tetap, ukuran variabel, dll)?
x = a + b * 2;
ketika Anda dapat mencapai hal yang sama dengan urutan ekspresi sederhana seperti x = b; x*=2; x+=a;
?