Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485

Об указателях по философски-математически

17.06.2015, 06:14. Показов 1682. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим, имеем код:
C++
1
int *p;
Есть мнение, что истолковать запись можно двояко:
1) р - тип, указывающий на инт;
2) р - указывает на инт.
Мне кажется, что собственный тип р должен быть целым и достаточным для охвата всего адресного пространства РАМ памяти. Простая комбинаторика - байт 256 и т.д.
А тип инт указан для того, как правильно считывать побайтно переменную, что бы верно ее воспроизвести при разыменовании.
Кто что скажет, дополнит, поправит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2015, 06:14
Ответы с готовыми решениями:

Выведите математически
Выведите математически сколько ГБ памяти поддерживает х32 и х64! Всмысле откуда получается что х32 поддерживает чуть более 3 ГБ...как...

Математически модели 2
Через 5 часов экзамен, но нести то, что написано без понимания хотя бы немного темы не могу Сам не сильно прошарен , поэтому вторую...

Математически непонятно
Дано действительное число X. Вычислить с точностью 10^(-6) нельзя использовать формулы и т.п. Вообщем только умножением надо все...

31
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 06:21
p -это не тип.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
17.06.2015, 06:29
C++
1
int*      p = NULL;
0
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
17.06.2015, 06:30  [ТС]
http://www.youtube.com/watch?v=2-OGKLV4q0U - после 2-ой минуты??
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 06:35
Цитата Сообщение от Albaz Посмотреть сообщение
после 2-ой минуты??
Переменная p является типом указатель на int
Фигня. Не верь ютубу. Переменная одно, а тип - другое, переменная не может быть типом. Это нонсенс.
0
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
17.06.2015, 06:48  [ТС]
Переменная должна иметь тип. Иначе как ее, каким видом будет считывать ее процессор??

Добавлено через 2 минуты
https://ru.wikipedia.org/wiki/... 1%8B%D1%85)

Добавлено через 2 минуты
Для Паскаля например "указательный тип" - словосочетание привычное.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 06:56
Ты не понял. Переменная должна иметь тип, но она сама ни разу не тип. Это разные понятия.
int *p -
p - это имя переменной
*p - это обзначение, что переменная с именем p является указателем.
int *p Тип переменной, на которую ссылается указатель.

Сам указатель - это тип данных, но во множестве таких типов, как int, double, char и т.д., но он не тип в контексте типа переменной. Правильно говорить:
Указатель - это переменная, которая ссылается на адрес, под который выделено int байт.

Добавлено через 3 минуты
Это под пример
C++
1
int *p;  //p ссылается на адрес, под который выделено int байт.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
17.06.2015, 07:06
Цитата Сообщение от Albaz Посмотреть сообщение
Для Паскаля например "указательный тип" - словосочетание привычное.
так примерно и здесь
Цитата Сообщение от Albaz Посмотреть сообщение
int *p
переменная p, которая имеет вид указатель на int
можно сказать так p указатель на int
но, не p тип
Цитата Сообщение от Albaz Посмотреть сообщение
Мне кажется, что собственный тип р должен быть целым
указатель сиречь адрес, в той степени что адреса целые то и указатель целый, придумают дробные будет дробный, но при этом ничего переписывать не придется
Цитата Сообщение от Albaz Посмотреть сообщение
достаточным для охвата всего адресного пространства РАМ памяти.
чеж за дискриминация, может и ОЗУ и ПЗУ и Порты, и вообще в космос указывать
указатель не обязан проверять валидность адреса
пример из классики "На деревню дедушке, Константин Макарычу" прекрасный пример невалидного указателя
Цитата Сообщение от Albaz Посмотреть сообщение
А тип инт указан для того, как правильно считывать побайтно переменную,
"Смешались в кучу кони, люди" для байт есть char

C++
1
2
3
4
int a=12;
unsigned char * b =&a;
for(int i=0;i<sizeof(int);i++)
 printf("%X ",b[i]);
выведет на экран все байты из которых состоит int
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
17.06.2015, 07:11
Цитата Сообщение от daslex Посмотреть сообщение
*p - это обзначение, что переменная с именем p является указателем.
int *p Тип переменной, на которую ссылается указатель.
немного не так.
p - имя переменной
int* - тип переменной

Добавлено через 4 минуты
Цитата Сообщение от Albaz Посмотреть сообщение
для охвата всего адресного пространства РАМ памяти
для охвата всего виртуального адресного пр-ва.
2
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 07:15
Почему же не так. Все так. Сама-то переменная именно, что типа int. Не договорил я это только про int*...
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
17.06.2015, 07:19
Цитата Сообщение от daslex Посмотреть сообщение
Сама-то переменная именно, что типа int.
типа указатель на int
Albaz, в этой теме В чем отличие & и * вроде бы все разжевали
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 07:26
Цитата Сообщение от daslex Посмотреть сообщение
int *p Тип переменной, на которую ссылается указатель.
о какой переменной речь? я говорю о той, которая там в адресе лежит, а не об указателе. Там в конце ни разу не указатель.

Добавлено через 4 минуты
то, что я выделил имело отношение к переменной int, а про int* не договорил'
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
17.06.2015, 07:28
Цитата Сообщение от daslex Посмотреть сообщение
я говорю о той, которая там в адресе лежит, а не об указателе.
а кто тебе сказал что там какая то переменная лежит?
и каким образом содержимое памяти жестко связано с типом?
как хочу так и представлю
Цитата Сообщение от ValeryS Посмотреть сообщение
int a=12;
unsigned char * b =&a;
лежит int, а указатель её считает как char
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
17.06.2015, 07:30
Эта "философия" порождается одним из идиотизмов сишного синтаксиса, когда звездочка, являющаяся частью типа, считывается компилятором как часть имени переменной:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
int     main()
{
    int*    p = 0, a = 0;
 
    std::cout   <<  "type of a is "
                <<  typeid(a).name()
                <<  std::endl
                <<  "type of p is "
                <<  typeid(p).name()
                <<  std::endl;
 
    system("pause");
}
Чтобы на этой чуши не заморачиваться, нужно просто переменные по одной объявлять.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 07:37
Цитата Сообщение от ValeryS Посмотреть сообщение
int a=12;
unsigned char * b =&a;
error: cannot convert 'int*' to 'unsigned char*' in initialization|

Цитата Сообщение от ValeryS Посмотреть сообщение
а кто тебе сказал что там какая то переменная лежит?
там всегда что-то лежит или NULL или мусор. Любой мусор - по идее какая-то переменная, какой-то свой тип, живущий своей жизнью. Либо же переменная, которая была уложена заботливым программистом.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
17.06.2015, 07:43
Цитата Сообщение от daslex Посмотреть сообщение
error: cannot convert 'int*' to 'unsigned char*' in initialization|
слышал о приведении?
C++
1
unsigned char * b =(unsigned char *)&a;
Цитата Сообщение от daslex Посмотреть сообщение
Либо же переменная, которая была уложена заботливым программистом.
и какой размерности и какого типа эта переменная?
простейший пример, по какому нибудь каналу, допустим по COM порту, приходит поток байт, который мы укладываем в какой нибудь буфер,а считать это нужно как массив int
поклали как char, читаем как int
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
17.06.2015, 07:55
Ну и кого мы к чему приводим? Указатель или переменную a?)
Тоже мне пример. Я привожу переменную a, которая сейчас int к типу char*, чтобы указатель на char* указывал на тип char*
Т.е. в итоге в конечном счете обращение идет к char*.
Да, она может там не лежать, но в конце все равно будет именно типа не указатель.

Своеобразный обман и подтасовка фактов
0
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
17.06.2015, 07:56  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
в этой теме В чем отличие & и * вроде бы все разжевали
да, спасибо
& - взятие адреса переменной
*р - работа с адресом, получение хранимого в нем значения переменной
Теперь я осваиваю ООП
Сложности с ->this
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,032
Записей в блоге: 1
17.06.2015, 07:59
Сложности с ->this
Наверное, это потому, что стрелка не с той стороны от this.
this->
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
17.06.2015, 08:12
Цитата Сообщение от daslex Посмотреть сообщение
Я привожу переменную a,
интересно, как можно привести то что далеко и доступа не имеем
и потом (unsigned char *) это все таки указатель
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2015, 08:12
Помогаю со студенческими работами здесь

Об указателях
В чем разница между этими двумя строчками? int* x; int *x;

математически описать график
помогите математически описать график !!! H=; A=; plot(H,A)

Математически описанный алгоритм -> C++
Имеется статья с алгоритмом. В С++ я новичок потому не очень понятно, как все же описать математические термины(см.картинку) и как сделать...

Вопрос об указателях.
Здравствуйте уважаемые форумчане. Собственно меня интересует такой вопрос: Можно ли заставить компилятор C++: инициализировать...

Запутался в указателях
Поиск элемента, равного figure void remove_helper(std::shared_ptr&lt;BTreeItem&gt; *item,const std::shared_ptr&lt;Figure&gt;&amp; figure) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru