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

"Антимассив" в 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 [8559 просмотров]


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

К этой статье пока нет комментариев, Ваш будет первым