trabalho sobre ponteiros - linguagem c

538 palavras 3 páginas
1. Quais serão os valores de x, y e p ao final do trecho de código abaixo? int x, y, *p; y = 0; p = &y; //*p = 0 x = *p; //x = 0 x = 4; //x = 4 (*p)++; //*p = 1, y = 1
--x; //x = 3
(*p) += x; //*p = 4, y = 4
Ao final, temos: x = 3, y = 4, p apontando para y (*p = 4).
2. Os programas (trechos de código) abaixo possuem erros. Qual(is)? Como deveriam ser?
a)
void main() { i nt x, *p; x = 100; p = x; //p deveria receber o endereço de x, já que p é um ponteiro (e x não). Ponteiros “armazenam” o endereço para o qual eles apontam! O código correto seria: p = &x; printf(“Valor de p: %d.\n”, *p); }
b)
void troca (int *i, int *j) { int *temp;
*temp = *i;
*i = *j;
*j = *temp;
}
A variável “temp” não precisava ser um ponteiro, já que apenas precisa armazenar um valor inteiro, sem precisar apontar para algum lugar. O código correto seria: void troca (int *i, int *j) { int temp; temp = *i;
}
c)
*i = *j;
*j = temp; char *a, *b; a = "abacate"; //o ponteiro “a” ainda não aponta para algum lugar nem possui memória alocada! b = "uva"; //o ponteiro “b” ainda não aponta para algum lugar nem possui memória alocada! if (a < b) printf ("%s vem antes de %s no dicionário", a, b); else printf ("%s vem depois de %s no dicionário", a, b);
O correto seria: char a[] = "abacate", b[] = "uva"; if (a[0] < b[0]) { printf ("%s vem antes de %s no dicionário", a, b);
}
else { printf ("%s vem depois de %s no dicionário", a, b);
}
Nesse caso, verificar apenas a primeira letra das cadeias de caracteres funciona, pois temos “a” e “u”. Porém, o código acima não funcionaria para os casos “manga” e “mamão”, por exemplo. Fica como exercício para o aluno criar uma função que faz a verificação de toda a cadeira de caracteres.3) Suponha que os elementos do vetor v são do tipo int e cada int ocupa 8 bytes no seu computador. Se o endereço de v[0] é 55000, qual o valor da expressão v + 3?
Se v (ou o endereço de v[0]), que representa o primeiro item do vetor está no byte de

Relacionados

  • Linguagem de programação em c
    2647 palavras | 11 páginas
  • Sistemas
    1614 palavras | 7 páginas
  • Atps programaçao 2
    2416 palavras | 10 páginas
  • Analise
    2434 palavras | 10 páginas
  • HISTORIA DO C
    10405 palavras | 42 páginas
  • linguagem
    1967 palavras | 8 páginas
  • ATPS Programação Estruturada II
    1790 palavras | 8 páginas
  • Atps algoritmos
    10234 palavras | 41 páginas
  • Linguagem C Trabalho
    4045 palavras | 17 páginas
  • TrabalhoComp
    1896 palavras | 8 páginas