Важливою властивістю опису будь-якого масиву у C є те, що ім’я масиву є вказівником-константою, значення якого дорівнює адресі початку масиву (першого байта першого елементу масиву). Нехай маємо опис:
int a[10]. *pa = &a[0] /*або pa = a */;
Звернення до елементів одновимірного масиву
Тоді вказівники:
pa + 1 та a + 1 будуть вказувати на елемент a[1];
pa + i та a + i будуть вказувати на елемент a[i];
До елемента a[1] можна звернутися так: a[1], *(pa + 1), *(a + 1);
А до елемента a[i]: a[i], *(pa + i), *(a + i).
Незважаючи на схожість застосування pa та a у виразах над вказівниками, між ними є суттєва відмінність: pa – це змінна, a – це константа. Звідси випливає, що можна написати
pa = a;
pa++;
Але неможна написати так:
a = pa;
a++;