"Антимассив" в 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)
, и всё равно,
каким из двух способов мы прибавим к указателю число.
08.01.2013, 14:07 [8586 просмотров]