Skutek użytej tu jawnej konwersji zalety od implementacji. W Visual C++ powoduje to potraktowanie obszaru pamięci zajętego przez pierwsze 4 bajt}' literału jako zmiennej całkowitej.
Wskaźniki i tablice
Związki między wskaźnikami i tablicami są bardzo bliskie. Każda nazwa tablicy jest niejawnie przekształcana na wskaźnik jej zerowego elementu, a każda nazwa wskaźnika może być indeksowana tak, jak nazwa tablicy.
Jeśli wskaźnik ptr wskazuje pewien element tablicy, to zarówno *ptr jak i ptr[ 0| jest nazwą tego elementu. Elementy położone z lewej strony elementu wskazywanego mają nazwy ptr[-1 ], ptr[-2], itd., a elementy położone z prawej mają nazwy ptr[\J. ptr[2], itd.
Jeśli x jest wyrażeniem całkowitym, to wyrażenie ptr+i jest wskaźnikiem elementu odległego o i elementów od wskazywanego (dla i ujemnego - w lewo, a dla i dodatniego - w prawo).
Jeśli wskaźniki ptrl i ptr2 wskazują odpowiednio elementy o indeksach i oraz j tej samej n-elementowej tablicy (a także gdy wskazują nie istniejące "elementy'' o indeksach -1 i w), to wyrażenie ptrl-ptr2 ma wartość i-j.
intvec(3] = { 10,20,30 }; int *ptr = vec + 2; cout«ptr++f-1 ]; // 20
cout« *(vec + 2); // 30
cout«vcc - ptr; // -3
Nazwa vec zostaje niejawnie przekształcona na wskazanie elementu vec[0], to jest na &vec[0].
Wyrażenie vec + 2wskazuje element o wartości 30.
Wyrażenie ptr++l-l] jest nazwą elementu o wartości 20.
W wyrażeniu vec - ptr pierwszy argument wskazuje element zerowy, a drugi argument wskazuje nie istniejący element vec[3].
Wskaźniki i struktury'
Jeśli wskaźnik ptr wskazuje strukturę o polu/, to nazwfą zmiennej odpowiadającej temu polu jest (*ptr)/\ albo krócej ptr->f.
#include <iostream.h>
struct Child { char name(20); int age;
Child *pNcxt;