Припустімо, що ми хочемо використати операцію збільшення замість додавання j до імені intarray. Чи можна записати вираз *(intarray++)?
Так зробити не можна, оскільки не можна міняти константу. Вираз intarray є адресою в пам’яті, де наш масив зберігатиметься до кінця роботи програми, тому intarray – вказівник константи. Ми не можемо записати intarray++, так само як не можемо записати 7++. Натомість можна збільшити вказівник, який містить цю адресу. В програмі 12.7 показано, як це можна зробити:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<bios.h>
int main()
{clrscr();
int intarray[5]={31,54,77,52,93};
int* ptrint;
ptrint=intarray;
for(int j=0;j<5;j++)
cout<<*(ptrint++)<<endl;
bioskey(0);
return 0;
}
Програма 12.7
Тут ми визначили вказівник на int – ptrint – і потім присвоїли йому значення адреси масиву intarray. Тепер ми можемо дістати доступ до елементів масиву, використовуючи вираз:
*(ptrint++)
Вказівники і функції
Передача аргументів функції може бути здійснена трьома шляхами: за значенням, за посиланням і за вказівником. Якщо функція призначена для зміни аргументу у викликуваній програмі, то ця змінна не може бути передана за значенням, оскільки функція дістає лише копію змінної. Однак в цій ситуації ми можемо передати змінну за посиланням і за вказівником.