Вычитание – допускается применять операцию вычитания для двух указателей одного типа. Результатом является количество объектов базового типа указателей, которые могли бы располагаться между адресами, определяемыми указателями.
 #include <stdio.h>
 void main( )
 {
 int x,y;
 long int z;
 int k;
 int *pi1, *pi2;
 long int *pli;
 pi1=&x; pi2=&y;
 printf (“%d\n”, pi2-pi1); // -1
 pi2=&k;
 printf (“%d\n”,pi2-pi1); // -4
 pli=&z;
 printf(“%d %d\n”,(int)pi2,int(pli)); // -20 -18
 printf(“%d\n”,(long int*)pi2-pi1);//
 pi2=&y (“%d\n”,(longint*)pi2-pi1); //1
 printf(“%d\n”,pi2-(int*)pli); //2
 printf(“%d\n”,(longint*)pi2-pli); //
 
 }
 
 В языке Си адрес программного объекта может хранить также ссылочные переменные, которая объявляется следующим образом:
 тип &имя_ссылки = имя_программного_объекта
 
 Ссылка по сути является вторым именем переменной и может использоваться в программе как ее дубликат. В этом случае и переменная и ссылка используют одну и ту же область памяти. Поскольку ссылка хранит адрес самой переменной.
 Int l=8;
 int &reff=l;
 l++;
 reff=reff+5;
 printf(“%d”,reff);
 Массивы и адресная арифметика.
 ñ Сложение указателей
 Складывать два указателя даже одного типа запрещено. Однако указател можно увеличить на целочисленную константу, при этом указатель увеличивается на велечину константа*размер_элемента_базового_типа
 ñ Энкримент/декримент указателя выполняется по правилам увеличения/уменьшения указателя на числовую константу равную единице.
 ñ Операции *,++,--,& являются равноправными и левонаправленными. Изменить порядок можно с помощью скобок. Рассмотрим сложение указателей на примере массива. Имя массива с точки зрения системы программирования Си представляет собой указатель на самый первый элемент массива (элемент номер 0). с именем массива можно работать как с обычным указателем, применяя к нему адресную арифметику. Однако изменять само значение адреса нужно с осторожностью
 #include <stdio.h>
 void main ()
 {
 int x[][3]={1,2,3,4,5,6,7,8,9};
 printf(“/n%d %d %d %d”, *(*x),*(*(x+1)),*(*(*(x+1)+1)),*(*(x+2)+2));
 } //1 4 5 9