Вказівник на void

Відмітимо одну особливість вказівників. Адреса, яка поміщається у вказівник, повинна бути одного з ним типу. Ми не можемо присвоїти вказівнику на int адресі змінної типу float. Однак є один виняток: існує тип вказівника, який може вказувати на будь-який тип даних. Він називається вказівником на void і визначається так:

void* ptr; //вказівник на довільний тип даних

Такі вказівники призначені для використання в певних випадках, наприклад, при передачі вказівників у функції, що працюють незалежно від типу даних, на які вказує вказівник.

Розглянемо приклад використання вказівника на void. В цій програмі також показано, що, якщо ми не використовуємо вказівника на void, нам слід бути обережними, присвоюючи вказівнику адресу того ж типу, що й вказівник.

Далі приведений лістінг програми 20.5

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

int main()

{clrscr();

int intvar;

float flovar;

int* ptrint;

float* ptrflo;

void* ptrvoid;

ptrint=&intvar;//так можна – однакові типи

// ptrint=&flovar; //так не можна – різні типи

ptrint=(int*)&flovar;

// ptrflo=&intvar; //так не можна – різні типи

ptrflo=(float*)&intvar; //так можна – примусове перетворення типів

ptrflo=&flovar;

ptrvoid=&intvar; //так можна - void

ptrvoid=&flovar; //так можна - void

 

bioskey(0);

return 0;

}

Програма 20.5

 

В цій програмі ми використали примусове перетворення типів «вказівник»

 

ptrflo=(float*)&intvar; //так можна – примусове перетворення типів

 








Дата добавления: 2015-08-26; просмотров: 679;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.