Olá, seja bem-vindo de volta. Nesta aula, quero fornecer uma demonstração ou
solução de nosso desafio anterior que o familiarizou com a sintaxe
de ponteiro, o conceito de ponteiro, atribuindo um
endereço a um ponteiro e, em seguida, exibindo alguma saída para um ponteiro.
Então, vamos trazer blocos de código, e vamos criar um novo projeto, um novo
projeto c que será chamado apenas de noções básicas de ponteiro, porque fará o básico de ponteiros.
Portanto, sabemos fazer tudo isso. Vamos selecionar o aplicativo de console,
certifique-se de que temos c e apenas chame
este ponteiro básico.
Este conceito de ponteiro é muito, muito importante.
Portanto, estamos começando devagar e continuando a partir daí.
Aqui vamos nos. Aqui temos o nosso principal.
Agora tudo o que queremos fazer é criar uma variável
inteira e depois uma variável de ponteiro.
E queremos inicializar ambos.
Então, a primeira coisa que vou fazer é criar uma
variável inteira e vou chamá-la apenas de número ou num.
E vou inicializar isso para 150.
Para criar uma variável de ponteiro, ela deve ser do mesmo tipo.
Para criar um ponteiro, tudo o que você precisa fazer é digitar o tipo de dados e
então o asterisco na declaração e então chamaremos este pnum para o número do ponteiro.
Normalmente, você deseja iniciar suas variáveis que são ponteiros com o prefixo p.
E é uma boa ideia sempre que você criar seus ponteiros, inicializá-los como nulo.
Nulo é uma palavra-chave especial que indica que o
ponteiro não aponta para nada.
Assim que tivermos ambas
as variáveis inicializadas, nosso número inteiro e nosso ponteiro de número
inteiro, queremos atribuir algo ao nosso ponteiro.
Porque neste momento nosso ponteiro não está apontando nada na memória.
E você quer ter certeza de que tudo o que você
atribuir ao seu ponteiro, que realmente tenha uma localização de
memória para ele, memória alocada.
Portanto, neste caso, se vamos atribuir a ele num, num
é um inteiro na linha 6 que possui memória alocada para ele.
C alocará memória automaticamente para qualquer
declaração de variável.
Mesmo este ponteiro na linha 7 tem memória alocada apenas para armazenar o ponteiro.
Isso não significa necessariamente que tem memória alocada para o que está apontando.
Portanto, para assinar pnum, um valor de um endereço,
tudo o que temos que fazer é dizer que pnum é igual
a e comercial, que é o endereço
do operador e queremos
atribuir a ele o endereço num.
Num tem uma memória já alocada para ele e nós o declaramos.
Portanto, a linha 9 está apenas atribuindo o endereço de num a um ponteiro.
É simples assim.
Agora, quando você cria um ponteiro e atribui
um endereço a ele, também pode criar sua própria memória dinâmica
e atribuí-la. Mas isso é para outro exercício. Neste caso,
já temos nossa variável criada. Vamos apontar para o valor dessa variável.
Precisamos atribuir o endereço de num.
Agora, depois de imprimirmos nossas atribuições, inicializamos tudo.
Agora queremos apenas imprimir algumas informações.
Então, vamos usar o printf e vou apenas dizer primeiro que
quero imprimir o valor do endereço pnum.
Agora, qual é o valor pnum para o endereço,
mas o endereço pnum. E aqui podemos dizer
o endereço de
um ponteiro, então vamos dizer p. E então tudo que temos que fazer é
colocar aqui, temos que colocar o endereço do nosso ponteiro.
Então aqui diríamos o endereço de pnum.
E o que isso vai nos dar, isso vai nos dar o endereço do
ponteiro que estava alocando a memória. Não é
o valor do valor do ponteiro. O valor do ponteiro também será um endereço, será o endereço de num.
Então, aqui vamos primeiro imprimir num também. Então
aqui vamos apenas imprimir num address is.
E, novamente, queremos imprimir um endereço, digamos, por cento p.
E então vamos dizer o endereço
do endereço de num.
E o endereço de num também deve corresponder ao valor de pnum.
O endereço de pnum será diferente porque esse é o ponteiro na memória.
Então, vamos imprimir o valor de pnum
ou devo dizer o endereço de pnum.
E então
também imprimiremos o valor do pnum.
variável e isso também vai ser um endereço, e isso
vai ser apenas pnum.
E a última coisa que queremos
exibir é para qual valor o pnum está apontando.
Portanto, o valor para o qual pnum está apontando.
E esse realmente vai ser o tipo para o qual está
apontando é um número inteiro. Então isso seria por cento d.
E vamos realmente adicionar alguns feeds de linha para que possamos ler isso.
E o que está realmente apontando para a maneira como você obtém esse valor é o operador de indireção.
Então você faz o asterisco e depois o nome do ponteiro.
E isso vai dizer a você o que o valor está apontando, que deve ser 150.
Então, apenas para reiterar aqui na linha
11, estamos imprimindo o endereço de num.
Vai ser algum número ou número hexadecimal.
Então, na linha 12, estamos imprimindo o endereço de pnum,
que acabou de ser alocado na
linha sete porque você precisa armazenar o ponteiro pnum em algum lugar.
Em seguida, imprimimos o valor do ponteiro, que é apenas o endereço de num.
E quando imprimimos o endereço de pnum, temos que usar o E comercial.
E então imprimimos o valor do que pnum está
apontando, o qual está desreferenciando usando o operador de indireção.
Portanto, agora vamos construir
isso e executá-lo, e devemos ver todos esses valores.
Portanto, o
endereço numérico apenas este número na memória é 0060FF0C.
O endereço de pnum
será algo diferente, 0060FF08.
O valor de pnum que é o endereço de num deve corresponder à primeira
linha e faz FFOC.
E então o valor para o qual pnum está apontando é 150.
Portanto, um ponteiro pode realmente ter três valores. Seu endereço, o valor
do ponteiro que é outro endereço e, em
seguida, o valor para o qual esse endereço está apontando.
E, novamente, o e comercial sempre fornece o
endereço na memória.
Pnum contém um endereço. Você pode imprimir isso
apenas dizendo o nome do ponteiro.
E então, para obter o valor para o qual ele está apontando, você usa o
operador indireção, o asterisco e isso lhe dará o valor que é 150.
Portanto, esses são os indicadores básicos, para familiarizá-lo com a sintaxe.
Quando usar o endereço do operador e quando usar o operador
de indireção e então tentar explicar apenas esse conceito de ponteiro e como um ponteiro contém
o valor de um endereço, o valor de um ponteiro é um endereço.
Portanto, brinque com isso, entenda
essa sintaxe, os ponteiros são conceitos realmente importantes. Obrigada.