chris~ Postado Fevereiro 17, 2013 Denunciar Share Postado Fevereiro 17, 2013 Supondo que no c´odigo abaixo seja atribu´ıdo o endere¸co 0xaaa0 `a v e 0xaaa4 `a f, qual o resultadodo printf mediante a execu¸c˜ao do programa? Como o operador un´ario ++ funciona em cadasitua¸c˜ao? Explique detalhadamente.#include <stdio.h>int main(){int v[1]={3};short int f[1]={0};int * vp = v;short int * vf = f;printf("%p, %p \n", ++vp,vf++);return 0;}eu não entendo o porque ele encrementa 4bytese alguém poderia me fala o pra que serve o short int??agradeço desde já Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vega Postado Fevereiro 17, 2013 Denunciar Share Postado Fevereiro 17, 2013 Essa notação (++vp, vf++), é usada para fazer o incremento conforme o tamanho dos bytes do tipo (int, float, char, etc) atribuído à variável.No caso de vp, que é do tipo int e int tem 4 bytes, o endereço do apontador será incrementado/deslocado em 4.Já short int, também recebe valores inteiros, mas tem 2 bytes.Você pode verificar o tamanho dos bytes dos tipos com a instrução sizeof:printf("%d\n", sizeof(int));printf("%d\n", sizeof(short int)); Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
chris~
Supondo que no c´odigo abaixo seja atribu´ıdo o endere¸co 0xaaa0 `a v e 0xaaa4 `a f, qual o resultado
do printf mediante a execu¸c˜ao do programa? Como o operador un´ario ++ funciona em cada
situa¸c˜ao? Explique detalhadamente.
#include <stdio.h>
int main()
{
int v[1]={3};
short int f[1]={0};
int * vp = v;
short int * vf = f;
printf("%p, %p \n", ++vp,vf++);
return 0;
}
eu não entendo o porque ele encrementa 4bytes
e alguém poderia me fala o pra que serve o short int??
agradeço desde já
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.