Квадратные скобки это более удобный и читабельный вариант записи
a[i] обозначает ровно *(a+i)
Поэтому законен и валиден код
1[a] = 42;
Для обращения в первому элементу массива например.
Иногда нет необходимости аводить отдельную переменную для индекса, и тогда код без скобок может быть предпочтительнее:
size_t i = 0;
while (a[i] != 0) {
a[i] = 3; /// <- тут если без оптимизации лишняя операция с индексами :)
++i;
}
// или
while (*a != 0) {
*a = 3;
++a;
}
// правда тут надо понимать, что a изменилась после цикла