Na linguagem C, o nome de um array é tratado, na maioria das expressões, como um ponteiro para o seu primeiro elemento. Isso permite o uso da chamada aritmética de Ponteiros”. Analise o trecho, em C, a seguir: int valores[4] = {10, 20, 30, 40}; int *p = valores; p++; p++; printf("%d", *p);
Na linguagem C, o nome de um array é tratado, na maioria das expressões, como um ponteiro para o seu primeiro elemento. Isso permite o uso da chamada aritmética de Ponteiros”. Analise o trecho, em C, a seguir:
int valores[4] = {10, 20, 30, 40};
int *p = valores;
p++;
p++;
printf("%d", *p);
- Será impresso 20, pois p++ desloca o ponteiro para a próxima posição de memória compatível com um número inteiro (o segundo elemento do vetor)
- Será impresso 10, pois o ponteiro continua apontando para o início do vetor, a operação p++ é inválida
- Será impresso 11, em formato hexadecimal
- Será impresso 11, pois p++ incrementa o valor do primeiro elemento em uma unidade
- Ocorrerá um erro de compilação, pois não é possível associar um ponteiro ao nome do array sem usar o operador &