Capítulo sobre ponteiros
Trabalho acadêmico: Capítulo sobre ponteiros. Pesquise 862.000+ trabalhos acadêmicosPor: wanderleyfilho • 25/9/2014 • Trabalho acadêmico • 1.231 Palavras (5 Páginas) • 340 Visualizações
Banco de Dados
Trabalho desenvolvido na disciplina tecnologia da informação apresentado à Anhanguera Educacional como exigência para a avaliação na Atividade de Praticas, sob orientação do tutor (Wesley).
Anhanguera Educacional
ANO-2014
1. Capítulo sobre Ponteiros.
Os ponteiros indicam o que esta armazenado nela, o endereço de uma variável é um ponteiro. Seu valor indica em que parte da memoria do computador a variável esta alocada, ponteiros proporcionam um modo de acesso a variável sem referencia-la diretamente. Para dominar a linguagem C, é essencial dominar ponteiros, que são utilizados em situações em que o uso do nome de uma variável não é permitido ou é indesejável. Em C, há um tipo especial de variável concebida para conter o endereço de outra variável, que se chama ponteiro variável, um ponteiro variável armazena um endereço de memoria que é a localização de outra variável.
A memoria de seu computador é dividida em bytes, numerados de zero ate o limite de memoria da maquina, esses números são chamados endereços de bytes, um endereço é uma referencia que o computador usa para localizar variáveis, toda variável ocupa uma certa localização na memoria, e seu endereço é o do primeiro byte ocupado por ela.
Variáveis que armazenam endereços, servem para armazenar numero inteiros, características, números em ponto flutuante etc. endereços são armazenados de modo semelhante em variáveis com um tipo especifico para esse fim. O operador indireto é unário e opera sobre um endereço ou ponteiro, o resultado da operação é o nome da variável localizada nesse endereço. O nome da variável representa o seu valor ou conteúdo. A permutação do valor de duas variáveis por padrão a linguagem C passa argumento para funções usando chamada por valor, a função chamada não pode alterar diretamente uma variável da função chamadora por exemplo uma rotina de ordenação poderia querer permutar dois elementos fora de ordem por meio de uma função chamara troca().
Atribuição, um endereço pode ser atribuído a um ponteiro desde que este seja do mesmo tipo daquele. Geralmente fazemos isso usando o operador de endereços junto ao nome de uma variável. Operação indireta, o operador indireto precedendo o nome do ponteiro resulta no nome da variável apontada, trazendo o endereço do ponteiro, como todas as variáveis os ponteiros tem um endereço e um valor, o operador &, precedendo o nome do ponteiro resulta na posição de memoria em que o ponteiro esta localizado. Incrementando um ponteiro, podemos incrementar um ponteiro por meio de adição regular ou do operador de incremento. Incrementar um ponteiro acarreta sua movimentação para o próximo tipo apontado.
Ponteiros no lugar de matrizes, em C o relacionamento entre ponteiros e matrizes é tão estrito que estes deveriam ser realmente tratados juntos. O compilador transforma matrizes em ponteiros pois a arquitetura do microcomputador compreende ponteiros, e não matrizes. Qualquer operação que possa ser feita com índices de uma matriz pode ser feita com ponteiros. Passando matrizes como argumento para funções, no capitulo sobre matrizes apresentamos numerosos exemplos de como elas são passadas como argumento para funções e como as funções podem acessar seu elementos quando uma função recebe o endereço de uma matriz como argumento ela o declara usando o nome do tipo de colchetes. As strings são matrizes do tipo char dessa forma a notação ponteiro pode ser aplicada como primeiro exemplo, vamos escrever uma função que procure um caractere numa cadeia de caracteres, essa função retorna o endereço da primeira ocorrência do caractere.
2. Problemas, no formato de exercícios, que abordam os assuntos estudados.
Dois problemas para tratar ponteiros:
#include <stdio.h>
int main(void){
int x;
x= 10;
int *ponteiro; //ponteiro q aponta um valor inteiro
ponteiro = &x; // indica o endereço de memoria x
printf(" Este e o valor da variavel %i\n", x);
printf(" Este e o endereco da variavel %i\n", &x);
printf(" Sem o asteristico identifica o endereco de memoria %i\n", ponteiro);
printf(" Com o asteristico identifica o valor de memoria %i\n", *ponteiro);
getchar();
}
#include <stdio.h>
int main(void){
int x = 10;
int *ponteiro;
ponteiro = &x;
int y = 20;
*ponteiro = y;
printf("%i %i\n", x, y);
getchar();
}
Dois problemas para tratar ponteiros para matriz:
#include <stdio.h>
int main(void){
int matriz [3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
printf("%i", matriz[0][1]);
getchar();
}
#include <stdio.h>
int main(void){
int matriz [2][2] = {1, 2, 3, 4,};
printf("%i", matriz[0][3]);
getchar();
}
Dois problemas para tratar ponteiros para matriz usando funções.
#include <stdio.h>
int main(void) {
...