Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com duvida em C


chris~

Pergunta

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

  • 0

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));

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...