Nesse codigo:
unsigned char[] a={100,121,111,100};
unsigned char *buffer=&a;
unsigned char *b2=buffer+1;
qual é o valor de buffer[2] ?;
e o valor de b2[2] ?
Nesse codigo:
unsigned char[] a={100,121,111,100};
unsigned char *buffer=&a;
unsigned char *b2=buffer+1;
qual é o valor de buffer[2] ?;
e o valor de b2[2] ?
Por que não tenta rodar o código e resolver você mesmo essa pergunta?
é que meu computador tem controle dos pais.
so ta permitido netbeans e jdk.
mais ja resolvi.
Code Pad.
buffer[2] retorna 111.
b2[2] retorna 100.
Isso mesmo. Quando você fez:
Você criou um ponteiro para o primeiro elemento de a. Acessar buffer[2] é o mesmo que acessar *(buffer + 2), ou seja, o terceiro elemento.
Quando você cria
Você criou um ponteiro para o segundo elemento do buffer. Acessar b2[2] é o mesmo que acessar
*(buffer+1+2) ou seja, o quarto elemento.
Note que o [] com ponteiros simplesmente faz uma soma, o que permite que ele funciona com array. Para comprovar que é somente uma soma, vc pode até imprimir 2[buffer] e 2[b2], que também vai funcionar. Afinal:
*(buffer + 2) é a mesma coisa que *(2 + buffer)
ok.