Baixe o app para aproveitar ainda mais
Prévia do material em texto
Ponteiro 1 🌑 Ponteiro Conceito Características Toda variável ocupa um espaço que é o seu endereço. Ponteiros são variáveis que armazenam o endereço e não o seu nome. Por meio do ponteiro se acessa o endereço e se altera o seu valor. Problemas que ocorrem Podem apontar para um objeto que não foi declarado causando erros, como: endereços não utilizados para dados dentro da memória que estão sendo usados para outra coisa Declarando Quando se declara o tipo, o ponteiro pode apontar para uma variável daquele tipo tipo *nome Utilizando Quando o ponteiro é declarado e não tem um endereço associado da um comportamento indefinido no programa Um ponteiro pode ter um valor NULL, que é um endereço de nenhum lugar ( Essa constante NULL é definida na biblioteca stdlib.h ) int *nome = NULL É possível somar e diminuir o endereço de um ponteiro, mudando a quantidade de memória necessária para ele. Quando se quer saber o endereço dele é só colocar %nome do ponteiro no printf printf("Endereço é: %p",p); Ponteiros Genéricos Ponteiro 2 São ponteiros que apontam para todos os tipos de dados, sendo declarados como void. Para acessar o conteúdo dentro de um ponteiro genérico é preciso converter para o tipo do conteúdo que está dentro dele (int*)p Um problema que ocorre com ponteiros genéricos é em relação as operações aritméticas para mudar o endereço, pois o mesmo só muda 1 byte Isso quer dizer que dependendo da operação não existe mudança na posição) Array Ponteiro para um Array Guarda um endereço em um espaço do array. Declarando → tipo *nome[tamanho] Multidimensionais Apesar do seu comportamento multidimensionais, seus dados são armazenados linearmente. O armazenamento ocorre em ordem, os conjunto de uma mesma linha vem sempre um do lado do outro. A formula para achar o endereço desejado linha do endereçonúmero de elementos por linhas + colunas do endereço desejado Se multiplica o número elementos pois se está pulando para a linha desejada Detalhes Para fazer um ponteiro apontar para outro ponteiro é só usar +*n vezes a quantidade de ponteiros que ele aponta Demonstração Ponteiro 3 **p2 = &p1
Compartilhar