Compreendendo os Ponteiros Void
Quando você viu void pela primeira vez, ele se referia a funções que não retornam nada. Não é possível criar uma variável do tipo void, mas é possível declarar um ponteiro void* que armazena o endereço de qualquer tipo de dado.
Se você realizou os exercícios de ponteiros nesta seção, sabe que todos os ponteiros ocupam 8 bytes. Um ponteiro void* não é diferente.
Um ponteiro void* não está vinculado a nenhum tipo de dado específico. Essa flexibilidade permite armazenar o endereço de qualquer tipo de dado nele. No entanto, há uma ressalva: não é possível desreferenciar um ponteiro void*.
Essa limitação decorre do mesmo motivo pelo qual não é possível declarar variáveis do tipo void. Realize uma conversão de tipo explícita!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Parabéns por concluir o básico de programação em C! Para avançar ainda mais, explore tópicos como macros, algoritmos de ordenação e estruturas de dados. Aprender uma distribuição Linux também ajudará no seu desenvolvimento como programador C.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain why you can't dereference a void pointer?
What are some common uses for void pointers in C?
Can you give examples of how to cast a void pointer to another type?
Awesome!
Completion rate improved to 2.63
Compreendendo os Ponteiros Void
Deslize para mostrar o menu
Quando você viu void pela primeira vez, ele se referia a funções que não retornam nada. Não é possível criar uma variável do tipo void, mas é possível declarar um ponteiro void* que armazena o endereço de qualquer tipo de dado.
Se você realizou os exercícios de ponteiros nesta seção, sabe que todos os ponteiros ocupam 8 bytes. Um ponteiro void* não é diferente.
Um ponteiro void* não está vinculado a nenhum tipo de dado específico. Essa flexibilidade permite armazenar o endereço de qualquer tipo de dado nele. No entanto, há uma ressalva: não é possível desreferenciar um ponteiro void*.
Essa limitação decorre do mesmo motivo pelo qual não é possível declarar variáveis do tipo void. Realize uma conversão de tipo explícita!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Parabéns por concluir o básico de programação em C! Para avançar ainda mais, explore tópicos como macros, algoritmos de ordenação e estruturas de dados. Aprender uma distribuição Linux também ajudará no seu desenvolvimento como programador C.
Obrigado pelo seu feedback!