PROGRAMOWANIE I ALGORYTMY

Tablica a wskaźnik


powrót

Nazwa tablicy a wskażnik

Na wstępie przypomnę, że nazwa tablicy jest wskaźnikiem na jej pierwszy element. Oznacza to, że możemy odnieść się to tego elementu za pomocą nazwy tablicy i indeksu o wartości 0 lub poprzez ten wskaźnik. Popatrzmy na przykład:

	int tablica[5] = {1 ,2, 3 , 4 ,5}; //inicjacja tablicy
	//odwołanie się za pomocą indeksu
   	cout<<"Pierwszy element tej tablicy to: "<<tab[0]<<endl; 
   	//odwołanie się za pomocą wskaźnika
   	cout<<"to także pierwszy element tej tablicy: "<<*tab;    

Po elementach tablicy możemy poruszać się przy użyciu indeksów podając kolejne numery komórek, począwszy od 0, jak również odwiedzając kolejne komórki tablicy przy pomocy wskaźnika.

W przypadku elementów, które zajmują np. 4 bajty pamięci (liczby typu int), będziemy przy każdym zwiększeniu wskaźnika przeskakiwać o te cztery bajty, żeby przejść do następnej wartości w tablicy. W przypadku tablicy typu char przeskok będzie o jeden bajt - tyle ile zajmuje typ char. Reguła ta dotyczy każdego innego typu.

Przykład 1

Przeanalizujmy program, który pokazuje sposób poruszania się po elementach tablicy z wykorzystaniem wskaźników:

#include<iostream>
using namespace std;

int main()
{
	int tab[10] = {1, 2 ,4, 5, 6, 4, 3, 2, 1, 0};
	
	cout<<*tab<<endl; //wypisanie 1 elementu tablicy
	
	cout<<*(tab+3)<<endl; //wypisanie 4 elementu tablicy
	
	for(int i=0;i<10;i++)
		cout<<*(tab+i)<<" "; //wypisanie elementów tablicy 
							//poruszając się po niej wskaźnikiem
	
	return 0;
}

Wyjście:

1
5
1 2 4 5 6 4 3 2 1 0