Complementando a resposta do colega.
int vetor[ ] = {1, 4, 5, 11, 17};
Posições -> 0, 1, 2, 3, 4
p1 = &vetor[2]; // O ponteiro p1 recebe o endereço da posição 2 do vetor
p2 = vetor; // O ponteiro p2 recebe o endereço da posição atual do vetor, ou seja posição 0
printf("%d\n", p1 - p2 ); // Efetua a subtração dos endereços de memória e apresenta como valor inteiro
Poderíamos converter para endereços aleatórios de memória considerando o tamanho de alocação de um inteiro, mas como o código quer apresentar o valor inteiro, que é o mesmo formato do vetor, podemos fazer apenas a subtração dos valores das posições, ou seja:
2 - 0 = 2
Gabarito: A