Динамическое распределение памяти в языке С - C (СИ)
Формулировка задачи:
Помогите, пожалуйста решить задачу на С.
В программе определите и инициализируйте переменную X типа double, указатель double * и указатель типа void *. Присвойте указателям адрес переменной X. Напечатайте адрес переменной, значения указателей и значения, получаемые при разыменовании указателей. Чтобы продемонстрировать роли и последовательность выполнения унарных операций получения адреса & и разыменования *, выведите на печать значение выражения *&имя_переменной.
(Работать с массивами нельзя указатели только)
Решение задачи: «Динамическое распределение памяти в языке С»
textual
Листинг программы
#include <stdio.h> int main(void) { double X = 3.14; double * pDouble = &X; void * pVoid = &X; printf("Variable X address: %p\n", &X); printf("Value of pDouble: %p points to value of %f\n", pDouble, *pDouble); printf("Value of pVoid: %p points to value of %f\n", pVoid, *(double*)pVoid); printf("*&X mean %f\n", *&X); return 0; }
Объяснение кода листинга программы
- Объявление переменных:
- double X = 3.14;
- double * pDouble;
- void * pVoid;
- Присваивание адреса переменной X указателям pDouble и pVoid:
- pDouble = &X;
- pVoid = &X;
- Вывод информации о переменных:
- printf(
Variable X address: %p\n
, &X); - printf(
Value of pDouble: %p points to value of %f\n
, pDouble, *pDouble); - printf(
Value of pVoid: %p points to value of %f\n
, pVoid, (double)pVoid); - printf(
*&X mean %f\n
, *&X);
- printf(
- Возврат 0, заканчивающий работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д