|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
|
В чем отличие & и *25.04.2015, 06:50. Показов 28755. Ответов 58
Метки нет (Все метки)
Как я понимаю, & и * - это самое сложное в Си. Но они - краеугольный камень, без которого язык превращается в малоподвижного парализованного.
Нам объясняли, читал, смотрел ролики.... Не догоняю! Где-то это именуется ссылки-указатели, где-то * - "разыменованием".... Словом мрак! Светлые умы, озарите!!!! )
0
|
|
| 25.04.2015, 06:50 | |
|
Ответы с готовыми решениями:
58
В чем отличие & и && ? В чем отличие между Microsoft Visual studio 8 и MVS 5& В чем отличие int &f( ) от int f( ) |
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
|
| 25.04.2015, 19:07 [ТС] | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 25.04.2015, 19:10 | ||
|
вот допустим я живу по адресу такому то он у меня есть в паспорте(регистрация/прописка) и вот прихожу я в какое нибудь учереждение, и там смотрят мою прописку, берут адрес, на Си это будет &
1
|
||
| 25.04.2015, 19:11 | |
|
0
|
|
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
||||||||||||||||||
| 25.04.2015, 20:23 [ТС] | ||||||||||||||||||
&a что в ней поменял???? "оператор & выдает адрес объекта" " * есть оператор косвенного доступа. Примененный к указателю, он выдает объект" В scanf() мы уже получили доступ к объекту а через его адрес. Зачем * ? "р = &с; присваивает переменной p адрес ячейки c" - зачем нам дополнительная переменная-посредник р к значению с, если это с мы можем поменять при помощи &с ??? Это, если бы мы:
0
|
||||||||||||||||||
|
Администратор
|
||||||||
| 25.04.2015, 20:34 | ||||||||
&a - её адрес, указатель на него. *(&a) - снова переменная. Вот для этого нужен * Добавлено через 1 минуту Для %p необходим указатель, разыменование не нужно, передаём просто ptr1
1
|
||||||||
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
|||
| 25.04.2015, 20:37 [ТС] | |||
|
Мы разделяем значение переменной и адрес ее местонахождения. К значению мы имеем доступ через адрес. По сути, нас интересуют значения. Хотя значения... доступны через адрес. Одно не есть другое. Но без первого второе не получить. Адреса интересны ради значений. Как это распутать?
0
|
|||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||
| 25.04.2015, 22:45 | ||||||||
|
прими как данное например есть Вяся он живет по адресу ул Главная дом 3 кв 2 живет один можем сказать пошел к Васе,обращение по имени а можем сказать пошел по адресу Главная 3 кв.2, обращение по адресу и в том и в другом случае один и тот же объект теперь насчет принимает указатель на строку в данном случае "%i" и указатель на переменную типа int все дело в том что scanf должна записать данные в переменную, но в Си принято что в функцию передаются не сами переменные а их копии, получая адрес(копию адреса) она сможет записать туда значение(передать тому кто живет по ул Главная дом 3 кв 2) вот например такой случай
вернемся опять к Васе поймали какого то пацана и сказали передай записку тому кто живет по адресу ул Главная дом 3 кв 2 наш посланец ни сном ни духом кто там живет и вообще Васю в глаза не видел, но передаст записку именно Васе
1
|
||||||||
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
||||||
| 27.04.2015, 19:53 [ТС] | ||||||
|
Давайте чуть назад
что есть разыменование? * ? а & это что? Я пока понял, что & при вызове функции, а * - при объявлении (прототипировании). Но ведь printf("... *ptr1...) и scanf("... &ptr1...) по сути ВЫЗОВЫ. *****
0
|
||||||
|
Администратор
|
|
| 27.04.2015, 20:06 | |
|
1
|
|
|
Почетный модератор
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 27.04.2015, 22:21 | ||||||
|
Может, еще так будет попонятнее немного
обычная переменная (не указатель) -> яблоко указатель на эту переменную - точное местоположение этого яблока (например, в центре стола), зная которое, мы всегда можем обратиться к этому значению (взять яблоко) -> т.е., разыменовать. Иными словами, можно сказать, что указатель - это не само яблоко, а его местоположение, чтобы взять непосредственно яблоко, необходимо указатель разыменовать.
0
|
||||||
| 27.04.2015, 22:25 | |
|
0
|
|
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||
| 27.04.2015, 22:26 | ||
|
1
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 27.04.2015, 22:28 | ||
|
она содержит адрес поле "Куда" на почтовом конверте, типичный указатель
1
|
||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||||||
| 27.04.2015, 22:34 | ||||||
0
|
||||||
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
||||
| 28.04.2015, 07:29 [ТС] | ||||
|
Добавлено через 32 минуты Указатель - тот же адрес, только другое имя, что я назвал синонимичностью. Т.е. обращению к одному адресу под разными именами. Значит, в программе я могу везде объявлять и использовать исключительно int*, и единственное ограничение - помноить об их абсолютной глобальности. Ведь "локальная" переменная int а внутри функции, как я догадываюсь, не есть та же int а глобальная. Это только мы их считаем тезками. В компиле за названием локальной привешиваются префиксы родительской функции, и по сути это совершенно не одноименные переменные, хотя нам они представлены тезками. Т.е. локальность - глобальность это обертка словоблудия, "удобства для масс". Настораживает нечто, что объявленное как тип указательный int* ptr1 рассматривается потом как обычный printf("... ptr1, ... Ясно, что переменная и указатель - суть имена адресов, шаг которых зависти от типа(char, int). Но раз уж нагородили сказочки про переменные - указатели, то врите уж до конца! А тут они вдруг раскололись))) Добавлено через 10 минут Итак, мы работаем с предметом в памяти ЭВМ через его местонахождение, точнее, по имени месторасположения. Итак: имя-> место-> предмет. Т.е. работаем не с самим предметом напрямую, а косвенно - через его местоположение и именную обертку местоположения.
0
|
||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 28.04.2015, 07:32 | ||
|
глобальные видимы во всей программе, с точки зрения железа живет и умирает вместе с программой локальная видна на данном участке, например в функции, живет только в функции, как зашли в функцию переменная появилась, как ушли умерла
0
|
||
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
||
| 28.04.2015, 07:45 [ТС] | ||
|
Итак, вначале мне казалось, что указатель отличен от переменной лишь тем, что указатель не может сам резервировать место в памяти для данных, а только может выступать синонимом пространства, уже закрепленного за "нормальной" переменной.
Теперь я прихожу к выводу, что отличаются они лишь вариациями локальность/глобальность. Так что все это словоблудие. Когда хочешь преодолеть сказочку о локальности - ставь звездочку * и все ок))) Добавлено через 5 минут Тогда... в интерпретации нашего восприятия: локальная не только не обозначает того же адреса, что и глобальная, но и живет лишь во время исполнения функции. Но то, что они "разноименны" на деле подтверждается тем, что в миг своего исполнения, локальная не переписывает глобальной. Потому срок жизни здесь не принципиален.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||
| 28.04.2015, 07:48 | ||||||||
|
и указатели могут быть локальными и переменные одно и тоже место в памяти могут занимать разные переменные, в зависимости от времени исполнения вернемся опять к Васе он живет по адресу, ну и так далее ![]() но там расположена гостиница и Вася локальный, временный житель и вот мы записали адрес, и года через два решили передать записку, но записка уже попала к Пете, который живет там на данный момент указатель не вылидный, адрес протух Добавлено через 2 минуты
0
|
||||||||
|
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
|
|||||
| 28.04.2015, 08:02 [ТС] | |||||
|
Добавлено через 1 минуту то пишется, что указатели дают возможность преодолеть локализацию функций, то... ?
0
|
|||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 28.04.2015, 08:10 | |||
![]() бывал там может быть Байт и прав чтобы понять указатели нужно спустится до уровня ниже но у меня другое мнение, есть опасность что за "деревьями не увидишь леса" архитектуры слишком разные и ассемблеров куча знаешь такое понятие "черный ящик" ? Это такое устройство которому что то подают на вход и оно что то выдает на выходе Мы знаем что должно быть на выходе при определенном сигнале на входе, как это реализовано внутри нас не интересует простейший пример функция sin(или любая другая) на вход подали угол и получили значение, как он там внутри рассчитывает без разницы, главное чтобы правильно Добавлено через 1 минуту мне кажется что ты путаешься в понятиях, и возлагаешь на указатели слишком много
0
|
|||
| 28.04.2015, 08:10 | |
|
query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так? В чем разница между & и && Отличие std::move от & ? error '80020009' Îøèáêà. /lalala/profile.asp, line 28 Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|