Розуміння Void-Указників
Коли ви вперше побачили void, це стосувалося функцій, які нічого не повертають. Не можна створити змінну типу void, але можна оголосити вказівник void*, який зберігає адресу будь-якого типу даних.
Якщо ви виконували вправи з вказівниками у цьому розділі, то знаєте, що всі вказівники займають 8 байтів. Вказівник void* не є винятком.
Вказівник void* не прив'язаний до жодного конкретного типу даних. Така гнучкість дозволяє зберігати в ньому адресу будь-якого типу даних. Однак є нюанс: не можна розіменовувати вказівник void*.
Це обмеження виникає з тієї ж причини, через яку не можна оголошувати змінні типу void. Виконайте явне перетворення типу!
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; }
Вітаємо з завершенням основ програмування на C! Щоб рухатися далі, вивчайте такі теми, як макроси, алгоритми сортування та структури даних. Вивчення дистрибутива Linux також допоможе вам розвиватися як кваліфікованому програмісту на C.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.63
Розуміння Void-Указників
Свайпніть щоб показати меню
Коли ви вперше побачили void, це стосувалося функцій, які нічого не повертають. Не можна створити змінну типу void, але можна оголосити вказівник void*, який зберігає адресу будь-якого типу даних.
Якщо ви виконували вправи з вказівниками у цьому розділі, то знаєте, що всі вказівники займають 8 байтів. Вказівник void* не є винятком.
Вказівник void* не прив'язаний до жодного конкретного типу даних. Така гнучкість дозволяє зберігати в ньому адресу будь-якого типу даних. Однак є нюанс: не можна розіменовувати вказівник void*.
Це обмеження виникає з тієї ж причини, через яку не можна оголошувати змінні типу void. Виконайте явне перетворення типу!
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; }
Вітаємо з завершенням основ програмування на C! Щоб рухатися далі, вивчайте такі теми, як макроси, алгоритми сортування та структури даних. Вивчення дистрибутива Linux також допоможе вам розвиватися як кваліфікованому програмісту на C.
Дякуємо за ваш відгук!