Sistema de banco de dados
Por: Ká Prado • 19/9/2015 • Trabalho acadêmico • 2.133 Palavras (9 Páginas) • 262 Visualizações
Ponteiros
Ponteiros é a ferramenta mais poderosa oferecida pela linguagem C, considerados um dos tópicos mais difíceis nessa linguagem, os conceitos embutidos em ponteiros podem ser novos para muitos programadores, visto que não são comuns em linguagens de alto nível.
O ponteiro nada mais é do que uma variável que guarda o endereço de uma outra variável. A declaração de ponteiros é feita da seguinte forma:
[pic 1]
Ponteiros Variáveis
O tipo da variável apontada deve sempre ser especificado na declaração do ponteiro, para que o compilador possa executar operações aritméticas corretamente, ponteiro variável é concebido para conter o endereço de outra variável, em linguagem C.
Ponteiros Constantes
Ponteiro constante é um endereço.
Usando ponteiros, uma função pode retorna mais de um valor para a função chamadora, pode se passar argumentos para uma função, por valor e por referência por meio de ponteiros, assim a função retorna mais de um valor para a função chamadora.
Ponteiros sem funções
A linguagem C garante que NULL não é um endereço válido, então antes de usa-los, devemos atribuir a eles algum endereço valido.
Ponteiros e variáveis apontadas
O operador indireto junto ao ponteiro substitui o nome da variável apontada operações com ponteiros C permite várias operações básicas com ponteiros
A unidade adotada em operações com ponteiros quando declaramos um ponteiro, o compilador necessita conhecer o tipo da variável apontada para poder executar corretamente operações aritméticas.
O nome de uma matriz é um ponteiro constante e não pode ser alterado, o compilador transforma matrizes em ponteiros, pois a arquitetura do microcomputador compreende ponteiros, e não matrizes.
Um ponteiro constante é um endereço, uma simples referência e uma variável e um lugar na memória que armazena um endereço.
Ponteiros e strings
Strings são matrizes do tipo char, funções podem tanto receber ponteiros como argumentos ou retornar um ponteiro, desde que declarados de acordo.
Ponteiros para uma cadeia de caracteres constante, pode ser usado em situações em que não queremos alterar o conteúdo da cadeia de caracteres
Matrizes e ponteiros
São utilizadas para substituir matrizes de duas dimensões em que cada elemento é uma cadeia de caracteres, permite uma economia de memória, não teremos a desvantagem de dimensionar todos os elementos como o tamanho da maior cadeia.
A versão matriz, as cadeias de caracteres são guardadas na memória em sete posições de 14 bytes cada uma, ou seja, ocupando 98 bytes de memória.
Cada elemento da matriz é um ponteiro e não mais outra matriz.
Matriz de ponteiros e a memória alocada
A versão ponteiros aloca uma matriz de sete ponteiros e inicializa cada um deles com o endereço de cada uma das cadeias de caracteres constantes.
Ponteiros para ponteiros
Podemos declarar um ponteiro para um ponteiro com a seguinte notação:
tipo_da_variável **nome_da_variável;
Algumas considerações:
**nome_da_variável
é o conteúdo final da variável apontada;
*nome_da_variável
Para acessar o valor desejado apontado por um ponteiro para ponteiro, o operador asterisco deve ser aplicado duas vezes. No C podemos declarar ponteiros para ponteiros para ponteiros, ou então, ponteiros para ponteiros e assim por diante, Para fazer isto basta aumentar o número de asteriscos na declaração
Ordenando ponteiros
A função ordena() , ordena os ponteiros para os nomes, essa ordenação é mais rápida do que a própria matriz nomes[][], pois é movimentava o ponteiros pela memória.
Ponteiros são variáveis que ocupam pouco lugar de memória, porem os nomes podem ocupar muita memória.
A função ordena() recebe uma matriz de ponteiros para nomes, são usados dois asteriscos para indicar um ponteiro para ponteiro. O nome de uma matriz é um ponteiro para um elemento dela, a novidade desse programa está em como os nomes são ordenados
Notação ponteiro para matrizes de ponteiros
Cada elemento da matriz p é um ponteiro para um nome. Contudo p[i] é o endereço de um nome, um elemento de uma matriz pode ser escrito em notação ponteiro.
Ponteiros para Funções
A função main() começa declarando PF como um ponteiro para uma função void. O tipo void é uma das possibilidades. Se a função a ser apontada é do tipo float.
Operações ilegais com ponteiros para funções
A aritmética com ponteiros para funções não é definida em C, você não pode incrementar ou decrementar ponteiros para funções.
Matrizes de ponteiros para funções
Os ponteiros para funções oferecem uma maneira eficiente de executar uma função entre uma série delas, com base em alguma escolha dependente de paramentos conhecidos somente em tempo de execução, suponhamos que queira escrever um programa em que é apresentado um “menu” de opções ao usuário, para cada escolha, o programa deve executar uma chamada a uma função particular.
Matrizes de ponteiros para funções fornecem um mecanismo alternativo de mudar o controle do programa sem utilizar estruturas de controle convencionais, cria-se uma matriz de ponteiros para funções e executa a função correta por meio de seu ponteiro
Ponteiros Void
Ponteiros peculiares são quando queremos atribuir um endereço a um ponteiro, este deve ser do mesmo tipo daquele.
Ponteiros do tipo void são usados em situações em que seja necessário que uma função receba ou retorne um ponteiro genérico e opere independentemente do tipo de dado apontado.
Ponteiros para estruturas
Existem diversos motivos para se usar ponteiros para estruturas. Por exemplo, se você quiser usar a função qsort() para ordenar os dados de uma matriz de estruturas, deverá escrever a função de comparação que recebe ponteiros.
Acessando membros por meio de ponteiros
Se o nome de uma estrutura for conhecido, podemos acessar seus membros usando o operador ponto(.). O operador ponto(.) opera somente sobre o nome de uma estrutura.
ETAPA 4
Arquivos
Os arquivos são usados para conservação permanente de grandes quantidades de dados. Os computadores armazenam arquivos em dispositivos secundários de armazenamento,
...