Увод в програмирането  alpha
Адресна аритметика ( аритметика с указатели )

При адресната аритметика са валидни само операциите събиране и изваждане на указател с цяло число. При тези условия могат да се използват ++, –, += и -= . При добавяне или изваждане на цяло число към или от указател вскя единица е равна на броя байтове, отделени в паметта за дадения тип на елементи от данните, към който сочи указателя.

        float x, *px, *py;
        
        px = &x;
        px = px + 3; // добавят се 3 по 8 байта към адреса запазен в px
        
        py = --px ; // В py се записва стойността на px минус 8 байта.
Note
Забележка:
При използване на адресна аритметика за обхождане на масиви могат да възникнат проблеми поради естеството на масивите и това как се заделя памет за тях.

Няколко операции с указатели:

  1. *p++ - първо се извлича стойността сочена от p и след това се увеличава указателя p . Така той сочи следващ елемент.
  2. *p– - извлича стойността сочена от p и след това се намалява указателя р така, че да сочи предходен елемент.
  3. *++р - увеличава се стойността на указателя p така че да сочи следващ елемент и след това се извлича стойността на този елемент
  4. *–p - намалява се p да сочи към предишен елемент и след това се извлича новата стойност сочена от p

Указателите могат да бъдат изваждани един от друг. Ако p1 и p2 са указатели към елементи на един и същ масив, то p2 - p1 ще определи броя на елементите между двата елемента, към които сочат p1 и р2.

Възможно е да проверява дали някой указател не е празен указател, т.е. със стойност null

        if ( p == NULL )
                cout<<"Празен указател"<<endl;
        else
                cout<<"Better luck next time"<<endl;