Olá, seja bem-vindo de volta.
Eu quero falar um pouco sobre os ponteiros do vazio nesta palestra.
Sabemos o que é vazio porque usamos essa
palavra-chave quando falamos sobre funções.
Principalmente se não quisermos retornar nenhum dado de uma função, usamos o
void como parte da assinatura da função. E quando usamos o ponteiro de evitar, o que isso significa?
Bem, o nome do tipo vazio significa ausência de qualquer tipo.
Portanto, um ponteiro do tipo void star pode conter o endereço de um item de dados de qualquer
tipo, por isso tem muita flexibilidade.
Se você não sabe o que vai armazenar como ponteiro, pode dizer
void star, muito bacana. Geralmente é usado em funções para parâmetros de função.
Portanto, void star é frequentemente usado como um tipo de parâmetro ou
um tipo de retorno
com funções, que lidam com dados de uma maneira independente de tipo.
Portanto, você pode permitir que sua função seja mais flexível
se receber ponteiros de estrelas vazios.
Basicamente, significa que sua função pode
ter mais de um tipo de variável, exceto
que ela não é completamente flexível, porque você precisa convertê-la de alguma forma ao desreferenciá-la.
Portanto, qualquer tipo de ponteiro pode ser passado como um valor do tipo void, de qualquer tipo.
O ponteiro void não sabe para que tipo de objeto está apontando.
Portanto, você não pode desreferenciá-lo diretamente,
e é aí que o verdadeiro soluço vem junto com a estrela vazia.
É ótimo para maior flexibilidade para diferentes tipos de dados, mas você só pode
usá-lo se conhecer o tipo de dados.
Portanto, você deve fornecer uma
conversão explícita ao ponteiro ao desreferenciá-lo.
O endereço de uma variável do tipo int pode ser armazenado em uma variável de
ponteiro do tipo void porque void star significa que qualquer tipo de dado pode ser armazenado lá.
Portanto, quando você deseja acessar o valor do intervalo
no endereço armazenado no ponteiro void estrela, primeiro é necessário convertê-lo em um
ponteiro do tipo int.
Neste exemplo, veremos como você usa o ponteiro void star.
Temos três variáveis que definimos, um inteiro, um flutuante e um caractere.
Agora vamos criar um ponteiro de estrela vazio.
Como o ponteiro é do tipo void, podemos atribuir a ele o endereço
de i, que é um int. Podemos atribuir a ele o endereço
de f, que é um número flutuante, e podemos atribuir a ele o endereço
do caractere ou ch que é um caractere.
O único problema é quando você desreferencia, você tem que conhecer esse tipo, mas você ainda vê a vantagem aqui.
A vantagem aqui é que só temos que criar um tipo
de variável e podemos armazenar vários endereços diferentes nele.
Mas sempre que você quiser usar, você tem que usar no star.
E você verá aqui, quando estamos imprimindo os dados, que a
estrela interna está lançando o ponteiro e então estamos desreferenciando-o, a estrela fora dos
parênteses internos está desreferenciando. Então, isso vai imprimir o valor
para o qual o ponteiro v está
apontando, mas primeiro ele vai convertê-lo para o tipo certo.
Então, em todos esses três ponteiros v, será impresso para a formiga que será impresso 10.
Para o flutuador, resultará em 2. 34
E para ch, char, vai imprimir k.
Veremos o ponteiro void usado mais em parâmetros de função,
como eu disse, em tipos de retorno.
E esse é realmente o valor quando se trata de usar apenas
um ponteiro de estrela vazio em uma declaração
e atribuir muitos tipos de dados diferentes. Obrigada.