Cpc 00

1332 palavras 6 páginas
Nessa aula, mostraremos como definir tipos estruturados que tenham um campo ponteiro (ou do tipo variável ponteiro). Mostraremos, também, um novo diagrama para representar o resultado da execução de programas, o Diagrama de Nós.

Até então, os tipos estruturados eram definidos somente em função de tipos básicos, como no exemplo mostrado abaixo:

struct Ponto
{ int x; Int y;}

Porém, é possível, também, definirmos um tipo estruturado da seguinte forma:

struct Ponto
{ int x; Int y; Int * z;}

Ao definir um novo tipo, nada em memória é alocado. Somente após declarar variáveis do tipo struct ponto criado acima é que serão alocados conteúdos de memória para armazenar os campos para as variáveis declaradas. Suponha que as variáveis p e q foram declaradas:

struct ponto p; struct ponto q;

Em memória, teremos:

ID DO REG. | ID. DA VARIÁVEL | CONTEÚDO DE MEMÓRIA | END. DE MEMÓRIA | | | | | | | | | | x | Lixo | 120m | q | y | Lixo | 116m | | z | Lixo | 112m | | x | Lixo | 108m | p | y | Lixo | 104m | | z | Lixo | 100m |

Os campos x e y de p e q devem receber valores inteiros, pois, do contrário, erro de checagem de tipo ocorrerá. Já os campos ponteiros z das variáveis q e p terão que receber um endereço de memória que aponta para um inteiro. Mas, atenção, se um ponteiro aponta para um endereço de memória que contém um inteiro, mas que pertence a um registro, então, na verdade, ele está apontando para o registro e não para um inteiro. Como exemplo, considere a variável a definida abaixo:

int a;

Após executar o comando acima, teremos em memória:

| | | | | a | Lixo | 124m | | x | Lixo | 120m | q | y | Lixo | 116m | | z | Lixo | 112m | | x | Lixo | 108m | P | y | Lixo | 104m | | z | Lixo | 100m |

Se fizermos:

q.z = &a; struct ponto * r = &q;

teremos:

| r | 120m | 128m | | a | Lixo | 124m | | x | Lixo | 120m | q | y | Lixo | 116m | | z | 124m | 112m

Relacionados

  • Cpc 00
    1921 palavras | 8 páginas
  • Cpc 00
    484 palavras | 2 páginas
  • CPC 00
    2055 palavras | 9 páginas
  • CPC 00
    449 palavras | 2 páginas
  • Cpc 00
    972 palavras | 4 páginas
  • CPC 00
    1091 palavras | 5 páginas
  • Cpc 00
    259 palavras | 2 páginas
  • CPC 00
    1157 palavras | 5 páginas
  • CPC 00
    2572 palavras | 11 páginas
  • cpc 00
    269 palavras | 2 páginas