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

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

Aula Prática 6 Ponteiros Monitoria 2009.2.  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.

Apresentações semelhantes


Apresentação em tema: "Aula Prática 6 Ponteiros Monitoria 2009.2.  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória."— Transcrição da apresentação:

1 Aula Prática 6 Ponteiros Monitoria 2009.2

2  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória contínua  meuArray na verdade é um ponteiro para a primeira posição da memória que foi alocada.  meuArray[10] é equivalente a *(meuArray + 10)

3  Podemos usar ponteiros como se fossem matrizes: int mat[] = { 1, 2, 3 }; int *p = mat; printf(“%d”, p[2]); // imprime 3

4 #include int main() { int mat[50][50]; int i, j; // percorre a matriz com dois loops for (i = 0; i < 50; i++) { for (j = 0; j < 50; j++) { mat[i][j] = 0; } return 0; }

5 #include int main() { int mat[50][50]; int *p = (int *) mat, i; // percorre a matriz com um único loop for (i = 0; i < 2500; i++) { p[i] = 0; } return 0; }

6  Matrizes não podem ser usadas como ponteiros  Exemplo: int vetor[10]; int *ponteiro, i; ponteiro = &i; // as operações a seguir são inválidas // ERRADO: vetor não é variável vetor = vetor + 2; // ERRADO: vetor não é variável *vetor = 0; // ERRADO: vetor não é variável vetor = ponteiro; tipo meuArray[];  const tipo * meuArray;

7 #include int main() { char *s = "string"; int a = 1, *p = &a; float f = 2.0f; void *v; v = p; // v aponta para um inteiro a = *((int *) v); v = s; // v aponta para uma string s = (char *) v; v = &f; // v aponta para um float f = *((float *) v); return 0; }

8 Podemos declarar matrizes de ponteiros Exemplos: // vetor de ponteiros int *vetor[10]; // vetor de strings char *strings[] = {"EU", "TU", "ELE" }; // matriz de ponteiros int *matriz[2][2];

9 Guardam o endereço de outro ponteiro Sintaxe: ◦ tipo **nomeDaVariavel; Também podem ser usados como matrizes bidimensionais Podemos criar ponteiros para ponteiros para ponteiros para ponteiros, e assim por diante

10  1) Faça uma função swap no qual você recebe como parâmetros ponteiros.  2) Preencha uma matriz bidimensional de tamanho fixo, utilizando ponteiros.  3)Faça uma função que recebe uma matriz bidimensional e a imprime(usando ponteiro)


Carregar ppt "Aula Prática 6 Ponteiros Monitoria 2009.2.  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória."

Apresentações semelhantes


Anúncios Google