The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Тип указателя, !*! redd, 18-Апр-18, 09:46  [смотреть все]
Для чего указателю тип, ??
Заранее же известно что там будет, адрес объекта ..??
  • Тип указателя, !*! izyk, 12:57 , 18-Апр-18 (1) +1
    > Для чего указателю тип, ??
    > Заранее же известно что там будет, адрес объекта ..??

    void *

  • Тип указателя, !*! PereresusNeVlezaetBuggy, 15:33 , 18-Апр-18 (2) +1
    > Для чего указателю тип, ??
    > Заранее же известно что там будет, адрес объекта ..??

    Чтобы знать, какого рода объект. Тем более, что без знания типа структуры, указатель на неё использовать проблематично.

    ЦП ведь ничего не знает про массивы и структуры, он с ними со всеми работает по тому же принципу: база+смещение. Это просто фишка языка, добавляющая семантику, чтобы программист меньше тупил и ошибался.

    Можете ради интереса посмотреть на Cello, например: http://libcello.org/

  • Тип указателя, !*! Филимон Доходчивый, 17:30 , 18-Апр-18 (4)
    > Для чего указателю тип, ??
    > Заранее же известно что там будет, адрес объекта ..??

    Чтобы правильно реализовывать адресную арифметику. Например, инкремент указателя (не на void) сдвигает его не на байт, а на размер типа

    int a[] = {0, 1, 2, 3, 4};
    int *pa = a;

    std::cout << *pa << std::endl;
    pa = pa + 1;
    std::cout << *pa << std::endl;
    pa = pa + 1;
    std::cout << *pa << std::endl;

    std::cout << "size of int is " << sizeof(int) << std::endl;




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру