БлогNot. "Антимассив" в C++ :)

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

"Антимассив" в C++ :)

Вот, смутило человека, что, оказывается, в C++ к элементу массива можно обратиться не только в виде p[1], но и обращение вида 1[p] работает абсолютно аналогично:

#include <stdio.h>

void main () {
 int p[5]={1,2,3,4,5};
 printf ("\n%d",p[1]); //*(p+1)
 printf ("\n%d",1[p]); //*(1+p)
}

Оба оператора printf напечатают одно и то же значение p[1], равное 2 (нумерация элементов массива в C++ выполняется с нуля).

На самом деле, никакого "антимассива" нет. Достаточно прочитать про указатели и понимать, что p[1] - это *(p+1), соответственно, 1[p] - это *(1+p), и всё равно, каким из двух способов мы прибавим к указателю число.


теги: программирование c++

08.01.2013, 14:07; рейтинг: 7483

  свежие записипоиск по блогукомментариистатистикао "вирусах" в архивах .zip

Наверх Яндекс.Метрика
© PerS
вход