|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
Читаю книгу14.08.2021, 19:12. Показов 14446. Ответов 222
Метки нет (Все метки)
Когда пишу, то что читаю, запоминаю лучше.
Читаю книгу Курс программирования на языке СИ. Сергей Фомин, Вадим Подбельский Есть такое предложение там: Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31 символа от начала идентификатора. В некоторых компиляторах это ограничение еще более жесткое, и учитываются только первые 8 символов любого идентификатора. В этом случае идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST в программе будут неразличимы. ----------------------------------------------- Непонятно что они имеют в виду под идентификатором? Возможно имена присваеваемые переменным? Эти имена присваемые переменным не могут превышать 31 символ?
0
|
|
| 14.08.2021, 19:12 | |
|
Ответы с готовыми решениями:
222
Читаю из файла, scanf, число с лидирующим нулем Читаю книгу, нужны задания Читаю книгу,есть то чего я не понял) |
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 16.08.2021, 09:41 | |||
|
0
|
|||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|||||||
| 16.08.2021, 10:22 [ТС] | |||||||
|
У меня он компилируется и выдаёт адрес переменной r
0
|
|||||||
|
фрилансер
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,351
|
|
| 16.08.2021, 10:25 | |
|
0
|
|
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 16.08.2021, 10:26 [ТС] | |
|
COKPOWEHEU, пишет что не берётся. Или я неправильно понял?
0
|
|
|
Неэпический
|
||
| 16.08.2021, 10:33 | ||
|
0
|
||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||||||
| 16.08.2021, 10:51 [ТС] | ||||||
|
Сейчас у меня мозги закипят. Я ведь так не понимаю. Переданные значения чего... Вы слова пропускаете считая это очевидным и смысла я не понимаю.
Добавлено через 5 минут Ааа, имеете в виду что я употребил слово НАПРЯМУЮ? А вы имеете в виду что printf берёт копию а не оригинал?))) пффф Добавлено через 3 минуты Я совсем про другое пишу. Указателем называют конструкцию со звёздочкой. А я без конструкции со звёздочкой могу взять адрес переменной.
К чему я в данном коде применяю &. К переменной r. Для чего? Для получения Адреса этой переменной. %p - этот спецификатор означает print a pointer что переводится как НАПЕЧАТАТЬ УКАЗАТЕЛЬ. Что я печатаю с помощью %p. Я печатаю Адрес переменной r с помощью спецификатора %p Добавлено через 1 минуту Из данного рассуждения выходит что Указатель это адрес. Это не так, я знаю, но как быть с этой логической цепочкой?
0
|
||||||
|
фрилансер
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,351
|
||||||||
| 16.08.2021, 10:58 | ||||||||
|
koeltrad, а так понятнее?
Добавлено через 1 минуту ..., потому что тип значения функции неизвестен
1
|
||||||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 16.08.2021, 11:02 [ТС] | |
|
Так понятно. Не пойму почему разногласия возникли.
Добавлено через 3 минуты & - этот знак означает get a pointer что переводится как ПОЛУЧИТЬ УКАЗАТЕЛЬ К чему я в данном коде применяю &. К переменной r. Для чего? Для получения Адреса этой переменной.
0
|
|
|
фрилансер
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,351
|
|
| 16.08.2021, 11:03 | |
|
1
|
|
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||
| 16.08.2021, 11:05 [ТС] | ||
|
Эта переменная тоже хранит адрес.
0
|
||
|
фрилансер
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,351
|
||||||
| 16.08.2021, 11:09 | ||||||
|
koeltrad, синтаксис объявления указателя:
тип* идентификатор;тип* идентификатор=инициализирующее_значение;а r у тебя как объявлена?
0
|
||||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 16.08.2021, 11:14 [ТС] | |
|
Кажется нашёл объяснение. Можете оценить?
Вот описание Указателя из интернета: Указатель — это переменная, которая содержит адрес другой переменной. В моём примере r содержит адрес самой себя, а не другой переменной. Поэтому r не будет являться указателем. Имеется в виду указатель на адрес другой переменной.
0
|
|
|
Неэпический
|
||||||||
| 16.08.2021, 11:15 | ||||||||
|
что вы хватаете по-кусочку из разных тем и нет общего понимания. ![]() Добавлено через 1 минуту
0
|
||||||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 16.08.2021, 11:40 [ТС] | |
|
Так и есть. Я по кусочкам и учу. То что становится интересно. Так и понимание должно приходить.
Добавлено через 1 минуту Указатель — это переменная, которая содержит адрес другой переменной. p - содержит адрес другой переменной? Нет. Здесь или описание указателя неверно или не знаю что. Добавлено через 21 минуту Ну или r из моего кода тоже будет являться указателем, так как содержит адрес.
0
|
|
|
Неэпический
|
|
| 16.08.2021, 11:42 | |
|
koeltrad, вы не на том акцент делаете.
Что такое вообще тип объекта? Упрощенно назовем типом инструкцию компилятору как интерпретировать данные. Соответственно, типом указателя обзовем тип, который говорит компилятору "интерпретировать содержимое как адрес". Тогда указатель - это некая память (условно), которую нужно интерпретировать как адрес чего-то: void * - компилятор, интерпретируй содержимое как адрес чего-то там, сам решу чего, не лезь; int * - компилятор, интерпретируй содержимое как адрес по которому лежит целое число типа int; float * - компилятор, интерпретируй содержимое как адрес по которому лежит число с плавающей точкой типа float. В указатель нужно положить адрес. Чтобы взять адрес переменной имеется унарный оператор &. &r - взять адрес переменной r.int * p = &r; - взять адрес переменной r и сохранить его в переменной p.Теперь в переменной p содержится адрес, удивительным образом совпадающий с адресом другой переменной - r.void * p; - указатель на нечтоp = &p; - взять адрес переменной p и сохранить его в переменной p.Теперь в переменной p содержится адрес, удивительным образом совпадающий с адресом самой переменной p.void * p = (void *)0xDEADBEEF; - указатель на нечто в котором сохранили адрес со значением 0xDEADBEEFТеперь в переменной p содержится адрес 0xDEADBEEF, который, удивительным образом, может вообще не совпадать с адресом ни одной из переменных.
1
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||||||||
| 16.08.2021, 11:50 | |||||||||||
r, и потом значение этой переменной отправляется в функцию. Иначе говоря, адрес вы вычисляете сами, до printf доходит всего лишь число.Условно говоря, у вас есть память int mem[20]; В 10-й ячейке хранится какое-то значение, например, 99. В любом месте в коде вы можете обращаться к этой "переменной" (ячейке) напрямую: mem[10] = 99; А например в ячейке 8 хранится число 10, то есть адрес "переменной". И получить доступ к значению вы можете более хитрым способом: mem[ mem[8] ] = 99. Или, что тоже самое,
Так вот, операцией (&r) вы получаете численное значение адреса переменной, например 0x100500. А потом это число передаете в printf. Кроме числа вы передаете его формат, чтобы функция знала, что печатать надо именно шестнадцатеричное 0x100500, а не десятичное 1049856.
1
|
|||||||||||
|
Неэпический
|
||
| 16.08.2021, 13:23 | ||
|
long399, вообще-то, у него правильно - characters, а не console. cout и cin не имеют никакого отношения к консоли.
https://www.stroustrup.com/bs_faq2.html#cout
1
|
||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||||||
| 16.08.2021, 15:03 [ТС] | ||||||
|
Кажется понял как понятнее оформить то что мне было непонятно.
Можно так описать Указатель?: Указатель - это переменная, ЗНАЧЕНИЕ которой содержит адрес? В моём коде когда я не объявлял указатель, значения у r не было. Я просто объявил int r;.
То есть я вызывал адрес переменной r, а не её значение. Поэтому в данном случае r не является указателем. Вот когда ЗНАЧЕНИЕ переменной содержит какой либо адрес, такая переменная называется указателем. Надеюсь правильно. Я пытаюсь досконально во всём разобраться, не могу иначе.
0
|
||||||
| 16.08.2021, 15:03 | |
|
Читаю книгу все работал а щас выдает такую ошибку
Читаю книгу Криса Касперски "Искусство дизассемблирования" читаю читаю не найду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|