Use o botão abaixo para reportar erros ou dar sugestões.
Computação Científica - Um Livro Colaborativo
Ponteiros são variáveis que ocupam uma posição da memória mas estão preparados para armazenar endereços de outras variáveis. Usamos um asterístico para definir uma variável do tipo ponteiro. Por exemplo, um ponteiro apontado para um double por ser definido por double *p;.
Observe o detalhe na linha y=&x;, onde o ponteiro y recebe o endereço da variável x. A linha int *y=NULL; pode ser substituída por int *y;. A diferença é que na primeira dissemos explicitamente que o ponteiro int não está apontado para nenhuma variável e, na segunda não demos carga inicial. É sempre indicado dar carga inicial em ponteiros para produzir códigos mais seguros.
Se definirmos uma variável do tipo ponteiro para double com o nome p, então *p é o valor apontado pelo ponteiro. Observe uma versão do código do exemplo 5.2.1 que produz o mesmo resultado:
A linha printf("O valor de x é %d\n",*y); imprime o valor apontado pelo ponteiro y, que é o valor de x.
O ponteiro é uma variável como qualquer outra, o que permite a definição de um ponteiro que aponta outro ponteiro.
Exemplo 5.2.2. Escreva um programa define um double, depois um ponteiro para esse double, depois um ponteiro para o primeiro ponteiro.
A instrução que atribui um valor para a uma variável através do ponteiro também é funciona.
Exemplo 5.2.3. Escreva uma programa que define uma variável sem atribuir valor, depois define um ponteiro apontado para essa variável e, finalmente, atribui valor para a variável usando o ponteiro.
A necessidade de indicar o tipo de variável para onde o ponteiro aponta é devido ao tamanho de cada tipo de variável, que pode ocupar vários bytes. O ponteiro aponta para o primeiro byte e a informação do tipo diz o tamanho da variável em bytes.
O endereço de um vetor v é dado pelo endereço do seu primeiro elemento &v[0], que também pode ser chamado por v. Naturalmente, cada elemento também tem um endereço, sequencialmente a partir do primeiro.
Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:33:16.