Пустые указатели в C:зачем они нужны в вашем опыте кодирования
В языках программирования определенные концепции значительно упрощают кодирование. Например, указатель void определяет конкретный тип данных из входных данных конечного пользователя на языке программирования C. Таким образом, мы переходим к обсуждению указателей void в C.
Как и другие, указатели void имеют соответствующие функции для их гибкости. Но если вы хотите сэкономить время при написании кода, ваша функция указателя перехода — это пустой указатель. Этот указатель позволяет одновременно сохранять и извлекать объекты разных типов. Далее вы узнаете все о методах кодирования с использованием пустых указателей в C.
(Изображение языка программирования)
1. Что такое указатели Void в C?
Как правило, пустые указатели — это указатели без какого-либо связанного типа данных. Другими словами, они подобны пустым контейнерам. Эта функция позволяет им хранить адреса переменной типа неизвестного типа данных.
Функция указателя C void позволяет вам преобразовать их в другие типы данных, упрощая выделение памяти. Впоследствии это позволяет использовать гибкие функции, такие как байты в распределении памяти. Кроме того, указатели void в C помогают выполнять универсальные функции.
(Простая программа «Hello World» на языке программирования C)
https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png
2. Как работает указатель Void в C?
В целом, функция указателя необходима для программирования. По крайней мере, мы видим его важность в управлении адресацией и распределении памяти.
Существует два разных типа указателей; общие указатели и пустые указатели. Однако наше внимание сосредоточено на указателях void и на том, как они работают в C.
Чтобы иметь указатель void в C, вам нужно всего лишь объявить часть информации с ключевым словом «void».
В целом ссылки и разыменования играют определенную роль в концепции указателей общего назначения. Разыменование в данном случае — это получение значения, хранящегося в переменной-указателе.
Таким образом, если значение указателя не связано с доступными типами данных, у вас есть возможность приведения типов.
Однако обратите внимание, что указатели void не поддерживают никаких арифметических операций. Вместо этого мы используем оператор косвенности «*». По этой причине становится необходимым приведение типов при отсутствии связанного типа данных. Таким образом, приведение типов связывает объявленный тип данных с указателем void. В противном случае запуск программы выдаст ошибку компилятора.
Размер void аналогичен указателю символа в C. Размер объекта зависит от платформы указателя.
Этими функциями управления памятью являются malloc() и calloc(). В свою очередь, эти функции помогают выделить память нужного типа данных. В каком-то смысле при выделении памяти используется формат, который позволяет указателю на функцию улучшать другие функции.
(Наглядная иллюстрация того, как работают указатели в C).
https://commons.m.wikimedia.org/wiki/Файл:C_pointer_3.svg
3. Синтаксис пустого указателя
Обычно лучше всего использовать правильный синтаксис для импорта любой функции программирования. Следовательно, синтаксис указателя void в C:
Пусто *имя_указателя;
При этом «void» является ключевым словом типа указателя. Итак, у нас есть имя указателя, на который мы указываем, и даем адресное распределение.
Возьмем пример ниже:
интервал b =6
символ с =‘г’;
Следовательно, в случае, когда мы включаем переменную указателя void, мы имеем:
Пустота *p =&b; // указатель void размещает и удерживает int ‘b’ как адрес целого числа.
Р =&c; // указатель void также содержит адрес char ‘c’.
Идя дальше, давайте выделим несколько примеров синтаксиса:
интервал i=6; // инициализация целочисленной переменной.
интервал *р; // объявление целочисленного указателя.
пустота *ptr; // пустое объявление указателя.
поплавок *fp; // объявление плавающего указателя.
р=fp; // неверный указатель.
птр=р; // действительный указатель.
fp=&i; // неверный указатель.
птр=&я; // действительный указатель.
птр=fp; // действительный указатель.
4. Некоторые примеры указателей Void в C с примерами кода
Двигаясь дальше, мы рассмотрим пример аргументов указателя void в приведенном ниже фрагменте кода:
Пример кода № 1
В первом из наших примеров кода мы показываем, как использовать функцию malloc(), таким образом:
#include
#include
int main()
{
интервал a=90;
int *x =(int*)malloc(sizeof(int));
х=&а;
printf("значение, указанное указателем x:%d",*x);
вернуть 0;
}
Вывод
Пример кода #2
В следующем коде мы показываем концепцию приведения типов.
#include
int main()
{
void *ptr =NULL; //пустая переменная указателя
int *p =NULL;// целочисленная переменная-указатель
char *cp =NULL;//переменная указателя на символ
float *fp =NULL;//переменная указателя с плавающей запятой
//пустой размер указателя
printf("пустой размер указателя =%d\n\n",sizeof(ptr));
//целочисленный размер указателя
printf("целочисленный размер указателя =%d\n\n",sizeof(p));
//размер указателя символа
printf("размер указателя символа =%d\n\n",sizeof(cp));
//размер плавающего указателя
printf("размер указателя с плавающей запятой =%d\n\n",sizeof(fp));
вернуть 0;
}
Вывод
В противном случае см. прикрепленную ссылку на видео ниже, посвященную кодам недействительных указателей в программировании на C.
https://youtu.be/-503stjWLhc
5. Использование указателя void
Безусловно, указатель void имеет огромное значение в программировании на языке C.
- Они помогают указывать на переменные любого типа данных.
Для лучшего понимания см. пример кода ниже. Некоторые из них включают:
#include
пустой основной()
{
int num=10;//Инициализирует обычную переменную
void *ptr;//Объявляет указатель void
ptr=#//Направляет указатель Ptr на num
printf("Значение целочисленной переменной =%d",*ptr );
<эм>}эм>
Однако выполнение этого кода приводит к ошибке времени компиляции. Если вы используете приведение типов к тому же коду для разыменования указателя, вы получите желаемый результат, таким образом:
#include
пустой основной()
{
int num=10;//Инициализирует обычную переменную
void *ptr;//Объявляет указатель void
ptr=#//Направляет указатель Ptr на num
printf("Целочисленное значение переменной равно %d", *(int*)ptr );// Разыменование с использованием приведения типов
<эм>}эм>
Значение целочисленной переменной равно 10.
Таким образом, путем приведения типов мы можем разыменовывать пустые указатели.
Таким образом, хотя арифметика указателей недействительна с пустыми указателями, приведение типов помогает решить эту проблему. Вывод становится следующим:
(Пустой указатель упрощает кодирование, показывая расположение переменных данных)
- При использовании calloc() и malloc() указатель void помогает выделить место в памяти для всех типов данных.
Чтобы проиллюстрировать это, см. код ниже:
int main(void)
{
// Обратите внимание, что функция malloc() возвращает значение void *
// Далее, приведение к любому типу данных, например char *, int *,…
int *x =malloc(sizeof(int) * n);
}
Следует отметить, что приведенная выше программа компилируется только на C.
- И последнее, но не менее важное:переменная указателя void помогает реализовать универсальные функции в C.
Заключение
В общем случае функция указателя void является важным инструментом программирования. Программисты находят его полезным, потому что с ним не связаны никакие типы данных. По крайней мере, это устраняет путаницу указателей, направляющих разные значения и классы данных друг к другу. Следовательно, пустые указатели уменьшают избыточное приведение типов. Он также поддерживает общий тип данных указателя. Поэтому он также является компилятором общего назначения.
У вас есть полное руководство по работе с указателями void в c. Однако, если у вас есть вопросы или вам нужны другие ресурсы для программирования, наша контактная страница всегда доступна.
Промышленные технологии
- Зачем вам нужен аудит энергии воздуха в вашей системе сжатого воздуха
- Что такое ограничители крутящего момента и зачем они нужны
- Что такое гидравлические зажимы и зачем они нужны?
- 4 причины, по которым вам следует оцифровать промышленную документацию
- Почему вам абсолютно необходимо настроить систему Andon?
- Плазменная резка:4 причины, по которым вам нужен стол для плазменной резки в вашем магазине сейчас
- 10 веских причин, почему вам нужна гидроабразивная резка
- Зачем нужен слесарь-механик?
- Зачем вам нужен маленький сервопресс?
- Зачем вам нужен 5-осевой обрабатывающий центр?