Ir ao conteúdo
  • Cadastre-se

C Diferenças ao declarar variáveis do tipo char


Estalha
Ir à solução Resolvido por Midori,

Posts recomendados

Olá, boa tarde.

Estou cursando a matéria "Software Básico" na faculdade e estou com uma dúvida em relação a declaração de variáveis.

No caso, a diferença dentre declarar:

char c1 = 1;

char c2 = '1';

 

 

#include <stdio.h>

void dump (void *p, int n) {
  unsigned char *p1 = p;
  while (n--) {
    printf("%d ", *p1);
    p1++;
  }
}
int main() {
  char c1 = 1;
  char c2 = '1';
  int i = 1;
  char v[] = "1";

  printf("valor de c1: %d -> na memória: ",c1);
  dump(&c1, sizeof(c1));

  printf("\nvalor de c2: %d -> na memória: ",c2);
  dump(&c2, sizeof(c2));

  printf("\nvalor de i: %d -> na memória: ",i);
  dump(&i, sizeof(i));

  printf("\nvalor de v: %s -> na memória: ",v);
  dump(v, sizeof(v));

  printf("\n");
  return 0;
}

Não entendi os prints gerado pelo código, principalmente o relacionado á variável i.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução
44 minutos atrás, Estalha disse:

No caso, a diferença dentre declarar:

char c1 = 1;

char c2 = '1';

Aí a variável c1 recebe o valor 1; E c2 o caractere 1 (tudo entre aspas simples é um caractere). O tipo char basicamente armazena um inteiro e quando recebe um caractere tem o código dele de acordo com a tabela ascii, o caractere 1 é o código 49.

 

Sobre os prints, na função dump que recebe dois argumentos o primeiro é o endereço da variável na memória e o segundo é tamanho dela em bytes. Aí ela faz um loop, enquanto a variável dos bytes é diferentes de zero, incrementando o endereço da variável e mostrando valor do conteúdo dele. No caso da variável i aqui a função mostra o valor 1 e outros três por causa dos 4 bytes do tipo int.

  • Curtir 3
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...