A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes.

Apresentações semelhantes


Apresentação em tema: "2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes."— Transcrição da apresentação:

1 2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes Relação de ponteiros com classes

2 2002/2003 Programação Orientada para Objectos 2 O que é a memória? Sequência de bytes com números sucessivos. Números são endereços. Bytes são a unidade básica de memória e têm 8 bits.

3 2002/2003 Programação Orientada para Objectos 3 Ponteiros Guardam endereços Ponteiro para int: int* p; Operador endereço (&): int* p = &i; Operador conteúdo (*): cout << *p << endl;

4 2002/2003 Programação Orientada para Objectos 4 Ponteiros e matrizes int m[5] = {6, 7, 8, 9, 10}; int* p = &m[0]; p = p + 1; *p = 20;

5 2002/2003 Programação Orientada para Objectos 5 Indexação de matrizes X[I] é o mesmo que *(X + I) int m[5]; m[2] = 10; é interpretado como int m[5]; *(m + 2) = 10;

6 2002/2003 Programação Orientada para Objectos 6 Matrizes em expressões Se um matriz ocorrer numa expressão é convertida num ponteiro para o primeiro elemento: int m[5]; int* p = m; É o mesmo que int m[5]; int* p = &m[0];

7 2002/2003 Programação Orientada para Objectos 7 Matrizes como argumento int soma(int const m[], int n); é o mesmo que int soma(int const* m, int n); cout << soma(matriz, 4) << endl; é o mesmo que cout << soma(&matriz[0], 4) << endl; ou ainda int* p = matriz; // ou &matriz[0] cout << soma(p, 4) << endl;

8 2002/2003 Programação Orientada para Objectos 8 Matrizes multidimensionais int m[3][2]; int (*p)[2] = m; ++p; p[0][0] = 10;

9 2002/2003 Programação Orientada para Objectos 9 Ponteiros e classes (I) int main() { Aluno a(12345, 20); Aluno* p = &a; cout << (*p).número() << endl << (*p).nota() << endl; }

10 2002/2003 Programação Orientada para Objectos 10 Ponteiros e classes (II) Em vez de cout << (*p).número() << endl << (*p).nota() << endl; usar abreviaura cout número() << endl nota() << endl;


Carregar ppt "2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes."

Apresentações semelhantes


Anúncios Google