|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
Читаю книгу14.08.2021, 19:12. Показов 14355. Ответов 222
Метки нет (Все метки)
Когда пишу, то что читаю, запоминаю лучше.
Читаю книгу Курс программирования на языке СИ. Сергей Фомин, Вадим Подбельский Есть такое предложение там: Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31 символа от начала идентификатора. В некоторых компиляторах это ограничение еще более жесткое, и учитываются только первые 8 символов любого идентификатора. В этом случае идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST в программе будут неразличимы. ----------------------------------------------- Непонятно что они имеют в виду под идентификатором? Возможно имена присваеваемые переменным? Эти имена присваемые переменным не могут превышать 31 символ?
0
|
|
| 14.08.2021, 19:12 | |
|
Ответы с готовыми решениями:
222
Читаю из файла, scanf, число с лидирующим нулем Читаю книгу, нужны задания Читаю книгу,есть то чего я не понял) |
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||||||
| 19.08.2021, 22:41 [ТС] | ||||||
|
Переинициализация переменной а.
Это почти идентично получению адреса переменной b.
И ещё я не учёл что такая переменная &b всегда имеет тип со звёздочкой. Добавлено через 2 минуты Для ардуино пишут на Ардуиновском С++. И возмозжности ардуино намного меньше чем микроконтроллеров других. Я так слышал.
0
|
||||||
|
Вездепух
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,314
|
||||
| 19.08.2021, 22:45 | ||||
*a = 5+2 НЕ меняет значение переменной а.
0
|
||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 19.08.2021, 22:48 [ТС] | |
|
Это ответ на пост 130 https://www.cyberforum.ru/post15672148.html
Добавлено через 1 минуту В моём посте код другой. Я написал что код из поста 130, похож на мой код, в котором я получаю адрес переменной b
0
|
|
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|||||||
| 20.08.2021, 00:35 [ТС] | |||||||
|
Отличие только в том что в 130 посте идёт переинициализация значения переменной а
*a = 5+2; Добавлено через 3 минуты Добавлено через 1 минуту Ааа, когда я не учёл? Это в самом начале когда спрашивал про scanf Добавлено через 32 минуты Или разыменованием можно назвать) Наверное нужно) https://youtu.be/nIY1fBkGQq4?t=517 Добавлено через 13 минут Скорее всего я не прав, там ещё запутанней система. Разбираюсь ещё Добавлено через 46 минут После присвоения переменной *а числа 20 (Разыменовывание), в переменной а(без звёздочки) продолжает существовать адрес переменной b. Что за раздвоение переменной a?
0
|
|||||||
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,319
|
|
| 20.08.2021, 06:11 | |
|
koeltrad,
a - это переменная с типом int* (указатель на тип int). Или ещё называют просто "указатель". В этот указатель записан адрес переменной bпри разыменовании указателя можно получить доступ к указуемому (то есть переменной b), при этом сам указатель a не меняется
2
|
|
|
из племени тумба-юбма
|
||
| 20.08.2021, 07:27 | ||
int *a = &b; сперва объявляется указатель *a и ему присваивается адрес ячейки памяти переменной b*a=20; в эту же в ячейку памяти присваивается(записывается) значение 20printf("%p\n%d\n", a, *a); выводится адрес ячейки памяти по указателю *a и значение(содержимое) этой ячейки памяти
1
|
||
|
из племени тумба-юбма
|
||
| 20.08.2021, 08:11 | ||
|
0
|
||
|
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
|
|||||
| 20.08.2021, 10:50 | |||||
|
0
|
|||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|||||||
| 20.08.2021, 17:45 [ТС] | |||||||
|
Это конечно пингпонг данными. Я для себя понятную модель придумал. Но боюсь писать здесь)))
Не по научному ,но понятно. Нужно ещё мне потренироваться конечно. Так уж и быть: int *a = &b; Здесь адрес в переменную а(без звёздочки) сохраняется навсегда. А вот переменной *a можно манипулировать, переприсваивать значения. Например: *a=20; Потом когда выполняется этот код: int *a = &b; 20 не может ведь записаться в адрес переменной &b, логично. Поэтому 20 присваивается просто переменной b. *a как бы говорит- я могу сохранить значение в переменную b, потому что имею её адрес. Я мог бы описать более по научному, но менее понятно)) Добавлено через 12 минут Интересно то, что до присвоения переменной *a числа 20, в переменной *a ничего не находится. Можно сделать вывод что переменная *a ждёт пока ей что либо присвоят. А у меня адрес переменной b, у меня адрес переменной b. Я теперь ей значение присвоить могу))
Информация связанная с историей запоминается лучше. Доказано) Добавлено через 2 минуты
0
|
|||||||
|
из племени тумба-юбма
|
||||||||||||
| 20.08.2021, 18:04 | ||||||||||||
|
В целом правильно размышляете. Только вот тут возможно недопоняли, или я тогда не верно понял прочитанное:
а хранится адрес переменной b, а вы говорите ничего не хранится. В указателях могут хранятся только адреса и ничего другое.Короче вот два кода, которые выдают один результат. Если вы понимаете почему так, значит отлично. Кликните здесь для просмотра всего текста
0
|
||||||||||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 20.08.2021, 18:15 [ТС] | |
|
Код в посте 152 немного другой. Без присвоения переменной *а =20;
Посмотрите на результат кода. В переменной *а находится 0
0
|
|
|
из племени тумба-юбма
|
|
| 20.08.2021, 18:25 | |
|
koeltrad, я специально добавил строку *а =20, b = 20, чтоб было понятней, с нулем не понятно будет.
В общем *а =20, аналогично b = 20. Идет присваивание переменной b значения 20. Только в первом случае присваивание делается через указатель а, а во втором случае делается присваивается напрямую, в переменную b.
1
|
|
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,319
|
||||
| 20.08.2021, 18:53 | ||||
a - это указатель (на тип int). (Или: переменная, хранящая адрес объекта типа int)int* - это такой тип (неотделимо от звёздочки!) : указатель на intпоэтому, чтобы не путать себя же, лучше не ставить пробел между указуемым типом и звёздочкой: int* a;
1
|
||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|||||||||||
| 20.08.2021, 18:56 | |||||||||||
a&b=!((!a) | (!b)) нигде не используется ?а b=!!b?koeltrad, пойми что такое указатель, без этого понятия будешь так все время и путается вот есть объект Вася мы ему дали лично 20 руб это сначала узнаем где живет Вася, Третья улица строителей 25 кв 12 это int *a.... * означает что a это указательи посылаем ему деньги 20 руб *a =... * означает разыменовании отдать тому кто там живетт.е a имеет значение Третья улица строителей 25 кв 12*a это кто там живет, в нашем случае Васявот такой пример
2
|
|||||||||||
|
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
|
||||||||||||||
| 20.08.2021, 19:26 | ||||||||||||||
|
!!b это скорее Си-шный костыль чтобы преобразовать из целочисленного в логический тип. Не булевская операция, а именно приведение типа.
2
|
||||||||||||||
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,319
|
||||||||
| 20.08.2021, 19:43 | ||||||||
|
вот так же всё понятно и красиво:
koeltrad, короче, как видишь, школы прилепливания звёздочки разные, но нужно помнить, что это часть типа
0
|
||||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||||||||||||
| 20.08.2021, 19:55 | ||||||||||||
![]() конструкция типа
)что это если не отрицание отрицания почитай книгу Криса Касперски "Техника отладки программ без исходных кодов" узнаешь много интересного про ассемблер и алгебру логики Но вроде мы от темы отвлеклись
0
|
||||||||||||
| 20.08.2021, 19:55 | |
|
Читаю книгу все работал а щас выдает такую ошибку
Читаю книгу Криса Касперски "Искусство дизассемблирования" читаю читаю не найду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|