Buscar

aula 6 -arrays ponteiros e matriz

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Curso de Programação em C++ 
Aula 06
Gerhard Saboia
Agradecimentos ao Prof: Evandro Parente Junior
*
*
Vetores e matrizes
Matrizes:
Array bidimensional (dois índices).
Corresponde ao conceito matemático de matriz, com linhas e colunas.
O primeiro índice indica a linha e o segundo a coluna.
// Declaração de uma matriz com 5 linhas e 20 colunas.
double matDouble[5][20];
*
*
Vetores e matrizes
 Matrizes
Supondo que 2 materiais e 3 características de cada um deles estejam armazenadas em uma matriz bidimensional, a representação seria a seguinte:
Material 1
Material 2
Características
Neste caso, para referenciar ao material 1 e sua característica 3 devemos usar nomeMatriz[0][2]. 
0
1
0
1
2
*
*
 Arrays multidimensionais:
Vetores e matrizes
Declaração
tipo identificador[tamanho1][tamanho2]…[tamanhon];
// Declaração de uma matriz de inteiros com 3 dimensões
int matInt[10][50][30] ;
// Declaração de uma matriz de floats com 4 dimensões
float matFloat[100][100][20][6] ;
*
*
Matrizes
#include <iostream>
using namespace std;
int main(void)
{
 int A[2][3]={2,3,4,5,2,0};
 int B[2][3]={0,23,2,4,0,6};
 int C[2][3];
 
 // Soma as matrizes.
 for (int i = 0; i < 2; i++)
 for (int j = 0; j < 3; j++) C[i][j] = A[i][j] + B[i][j];
 // Imprime o resultado.
 for (int i = 0; i < 2; i++)
 {
 for (int j = 0; j < 3; j++) cout << C[i][j] << " ";
 cout << "\n";
 } 
 return(0);
}
*
*
Apontadores (ponteiros)
São variáveis que armazenam endereços de memória.
“Apontam” para o endereço de outras variáveis.
Sintaxe:
int *p; // p é um ponteiro para inteiro
double *x; // x é um ponteiro para double
Operadores associados:
&  retorna o endereço de uma variável.
*  retorna o conteúdo de um endereço de memória.
*
*
Apontadores (ponteiros)
#include <iostream>
using namespace std;
int main(void)
{
 int a = 10; // cria uma variável inteira a
 int *p; // cria um ponteiro para inteiro
 cout << "Valor inicial de a: " << a << "\n"; 
 
 p = &a; // faz apontar para a
 *p = 8; // altera o contéudo do endereço apontado por p
 cout << "Valor do ponteiro p: " << p << "\n";
 cout << "Conteudo do endereco apontado por p: " << *p << "\n";
 cout << "Valor final de a: " << a << "\n"; 
 return(0);
}
Valor inicial de a: 10
Valor do ponteiro p: 0x22ff74
Conteudo do endereco apontado por p: 8
Valor final de a: 8
*
*
Apontadores (ponteiros)
Operações aritméticas:
Igualdade
p1 = p2 // p1 aponta para o mesmo endereço de p2
*p1 = *p2 // copia o conteúdo de p2 para p1
Incremento e decremento
Usandos para percorrer arrays.
p++; // p = p + sizeof(tipo_de_p)
p--; // p = p - sizeof(tipo_de_p)
Na prática p++ faz p apontar para o próximo elemento do array.
*
*
Apontadores (ponteiros)
Aplicações mais importantes:
Alocação dinâmica de memória.
Passagem de parâmetros para funções.
Alocação dinâmica de memória:
Utilizada quando as dimensões de um array são conhecidas apenas durante a execução.
Criação de estruturas de dados mais complexas:
Pilhas, filas, listas, árvores, ...
Utilização de classes (herança/polimorfismo).

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Outros materiais