Форум программистов, компьютерный форум CyberForum.ru

Можно ли как-то словить номер элемента используя указатель, а не переменную - C++

Восстановить пароль Регистрация
 
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
23.03.2014, 01:04     Можно ли как-то словить номер элемента используя указатель, а не переменную #1
C++
1
2
3
4
5
6
void Print(int *arr, const int *size)
{
    for (int *p = arr, n=0; p < arr + *size; p++)
        cout << "[" << n++ << "] - " << *p << endl;
    cout << endl;
}
собственно, можно ли как-то словить номер элемента используя указатель, а не переменную?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2014, 01:04     Можно ли как-то словить номер элемента используя указатель, а не переменную
Посмотрите здесь:

C++ [C/C++] Можно ли выразить порядковый номер элемента массива через индексы?
Как вывести на экран переменную из функции, которой присваиваеться значение через указатель? C++
Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать? C++
Найти номер последнего максимального элемента последовательности используя одномерный массив C++
C++ Обязательно ли объявлять переменную для хранения адреса переменной как указатель?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
23.03.2014, 02:19     Можно ли как-то словить номер элемента используя указатель, а не переменную #2
Можно. Попробуй из адреса текущего элемента вычесть адрес 1го эл-та.
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
23.03.2014, 09:48  [ТС]     Можно ли как-то словить номер элемента используя указатель, а не переменную #3
Цитата Сообщение от TheChosenOne Посмотреть сообщение
Можно. Попробуй из адреса текущего элемента вычесть адрес 1го эл-та.
а почему показывает сразу номер, а не разницу, в размере типа? (в данном случае почему не 0 4 8 12...)?
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,207
Завершенные тесты: 1
23.03.2014, 12:20     Можно ли как-то словить номер элемента используя указатель, а не переменную #4
Цитата Сообщение от D_Ok Посмотреть сообщение
почему показывает сразу номер, а не разницу, в размере типа?
Указатель знает о типе переменной, соответственно все операции по вычислению адреса
выполняются кратно размеру типа.
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113
23.03.2014, 17:16     Можно ли как-то словить номер элемента используя указатель, а не переменную #5
D_Ok, или проще говоря компилятор делает так: берет разницу в размере типа и делит ее на размер типа и возвращает?! результат. Так устроен компилятор (Я сам когда-то задавался этим вопросом)
Если хочешь увидеть разницу в байтах,то,насколько я помню, можно привести указатель к void* и вычесть
Yandex
Объявления
23.03.2014, 17:16     Можно ли как-то словить номер элемента используя указатель, а не переменную
Ответ Создать тему
Опции темы

Текущее время: 20:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru