O seguinte código não tem erros de sintaxe e sua execução resulta na apresentação de B, A, Natal e Amparo. #include <stdio.h> enum cidades { Recife, Natal }; union capitais { enum cidades capitalA; enum cidades capitalB; }; typedef struct { char *rua; enum cidades cidade; } endereco; int main(int argc, char *argv[]) { char matriz[] = {'A','B'},(*ptrA)[2],*ptrB; ptrA = &matriz; printf("%c ", (*ptrA)[1]); ptrB = "BRASIL"; ptrB++; ptrB++; printf("%c ",*ptrB); union capitais varA; varA.capitalA = Natal; printf("%d ", varA.capitalB); endereco varB = {"Amparo", Recife}, *ptrC; ptrC = &varB; printf("%s ", ptrC->rua); }