|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
Читаю книгу14.08.2021, 19:12. Показов 14379. Ответов 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
|
|||||||
|
фрилансер
6500 / 5731 / 1133
Регистрация: 11.10.2019
Сообщений: 15,338
|
|
| 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
|
||||||
|
фрилансер
6500 / 5731 / 1133
Регистрация: 11.10.2019
Сообщений: 15,338
|
||||||||
| 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
|
|
|
фрилансер
6500 / 5731 / 1133
Регистрация: 11.10.2019
Сообщений: 15,338
|
|
| 16.08.2021, 11:03 | |
|
1
|
|
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||
| 16.08.2021, 11:05 [ТС] | ||
|
Эта переменная тоже хранит адрес.
0
|
||
|
фрилансер
6500 / 5731 / 1133
Регистрация: 11.10.2019
Сообщений: 15,338
|
||||||
| 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 | |
|
Читаю книгу все работал а щас выдает такую ошибку
Читаю книгу Криса Касперски "Искусство дизассемблирования" читаю читаю не найду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|