|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
Читаю книгу14.08.2021, 19:12. Показов 14585. Ответов 222
Метки нет (Все метки)
Когда пишу, то что читаю, запоминаю лучше.
Читаю книгу Курс программирования на языке СИ. Сергей Фомин, Вадим Подбельский Есть такое предложение там: Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31 символа от начала идентификатора. В некоторых компиляторах это ограничение еще более жесткое, и учитываются только первые 8 символов любого идентификатора. В этом случае идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST в программе будут неразличимы. ----------------------------------------------- Непонятно что они имеют в виду под идентификатором? Возможно имена присваеваемые переменным? Эти имена присваемые переменным не могут превышать 31 символ?
0
|
|
| 14.08.2021, 19:12 | |
|
Ответы с готовыми решениями:
222
Читаю из файла, scanf, число с лидирующим нулем Читаю книгу, нужны задания Читаю книгу,есть то чего я не понял) |
|
из племени тумба-юбма
|
|||
| 20.08.2021, 20:19 | |||
|
Добавлено через 2 минуты
0
|
|||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 20.08.2021, 20:34 | |
|
мама Стифлера, разыменование - это оператор. Это не относится к объявлению переменной-указателя
Добавлено через 33 секунды так же, как и взятие адреса
0
|
|
|
из племени тумба-юбма
|
||
| 20.08.2021, 20:52 | ||
int* a, b; - хороший пример привели. Чтоб не путаться, реально проще прилепить звездочку к переменной. Пусть даже по синтаксису это не правильно.
0
|
||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|||
| 20.08.2021, 20:56 | |||
|
Или, давай, вообще всё в одну строчку писать ![]() ![]() в Си полно таких вещей ))
0
|
|||
|
из племени тумба-юбма
|
|
| 20.08.2021, 21:12 | |
|
Это тяжело понять. То есть, когда просто объявляем указатель, то пишем так
int* ptr;А когда объявляем с инициализацией, нужно писать так int *ptr = &b;
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|||||||||||
| 20.08.2021, 21:31 | |||||||||||
|
мама Стифлера, нет, в обоих случаях звёздочка логичнее смотрится прилепленной к типу
мама Стифлера, может, вот так нагляднее будет
789Добавлено через 2 минуты подправил
2
|
|||||||||||
|
из племени тумба-юбма
|
||||||
| 20.08.2021, 21:53 | ||||||
|
Алексей1153,
с typedef еще запутанней вышло, лучше уж такКликните здесь для просмотра всего текста
В общем вроде понял. Если указан тип переменной, то звезду всегда лепить сразу после типа. А если типа нет, тогда лепить перед переменной и это означает разыминовывание, или присвоение. Ну как то так наверно.
0
|
||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
||
| 20.08.2021, 22:04 | ||
|
1) синтаксис объявления указателя: указуемый_тип* имя_указателя /*=инициализация*/; 2) синтаксис применения оператора разыменования: * имя_указателя или * выражение_возвращающее_адрес------ это два разных и не связанных между собой события: объявление указателя и разыменование при работе с указателем при разыменовании можно лепить пробелов сколько угодно - логически это не мешает(хотя и смотрится некрасиво). Это такой же унарный оператор, как + 1; //унарный плюса алиасом через typedef я всего лишь хотел подчеркнуть, что звёздочка - это часть типа указателя
1
|
||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||||||||
| 21.08.2021, 00:16 | ||||||||||||
0
|
||||||||||||
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,337
|
||
| 21.08.2021, 03:55 | ||
{ и } , на begin и end, потому что кому-то так так "логичнее".Во-первых, в семантике объявления языка С звездочка всегда жестко ассоциирована с объявляемым идентификатором, а не с именем типа. Во-вторых, свое перекраивание вы сможете применить только к префиксным элементам объявления (звездочка), а с постфиксными ничего сделать все равно не сможете: сколько бы вы ни доказывали, что "логичнее" int[10] a, вам все равно придется писать int a[10].Зачем в такой ситуации нужны эти вялые полумеры со звездочкой?
0
|
||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|||||||||||||||||||||
| 21.08.2021, 06:15 [ТС] | |||||||||||||||||||||
|
Вопрос серьёзнее чем я думал.
Придумал другую теорию. Очень хорошее название: Ссылки. Но для красочности, наглядности и хорошего понимания я назвал это: Эффект Сабзиро(В игре мортал комбат Сабзиро оставляет своих ледяных клонов))) Или просто: Клоны. Во первых, такой код работать не будет: Пример без указателей:
С указателями идёт телепортация значений, подставление(ссылка, пересылка).
Причём адрес для доставки ЗНАЧЕНИЙ это *a и b (НЕ &b). И теперь можно из любого места кода(с небольшими оговорками) приравнять значение *a чему либо или b чему либо и они оба будут иметь одно ЗНАЧЕНИЕ. Например написали в любом месте кода(с небольшими оговорками) *а=20; Теперь значение 20 телепортируется в значение *а в этом выражении int *a = &b; И переменная b тоже стала иметь такое же значение потому что *a = &b; В таком выражении ЗНАЧЕНИЯ переменных приравниваются друг к другу по законам обыкновенного кода. Так как значения хранятся в *a и b, то *a=b ----------------------------------- (Действия совершаются разные над *a и a, а название(Указатель) одно и то же у них, считаю что это непорядок. *a - это клон указателя для ЗНАЧЕНИЯ переменной, (точка телепорта для ЗНАЧЕНИЯ переменной, ссылка), а - это указатель, в ЗНАЧЕНИИ которого находится АДРЕС другой переменной). Указателем обычно называют int *a; Моё мнение, что указатель это просто а, так как в ЗНАЧЕНИИ переменной а хранится АДРЕС другой переменной, а вот в *a хранится ЗНАЧЕНИЕ переменной, ссылка на которую содержится в указателе. Считаю что в этом вся путаница и если это объяснить правильными терминами, то всё станет понятно, я как всегда по колхозному изложил. Адрес в указателе сохраняется тоже в значении переменной, но без звёздочки. Нда, видимо в моём тексте можно запутаться по этому поводу. Я не утверждаю что я прав, исхожу из результатов опытов) Добавлено через 13 минут Насчёт того что адрес сохраняется в переменной не навсегда, спасибо. Значение переменной сохраняется в *a и b. Адрес сохраняется в a и &b(&b- отсюда берётся адрес, а не сохраняется там). Соответственно меняем адрес сохранённый в УКАЗАТЕЛЕ: Этот адрес &b изменить не получится, а если получится, то виндовс покажет фигу и синий экран. Куда типа лезешь менять стандартные названия ячеек.
Очень занимательный фокус Указателя заключается в том, что чей адрес содержит Указатель, значение той переменной принимает переменная Клон Указателя(*ссылка, переменная со звёздочкой). Например если указатель а содержит адрес переменной &с, то ЗНАЧЕНИЕ *а будет равняться ЗНАЧЕНИЮ с. Адрес &с содержится в указателе а, поэтому а* принимает значение переменной с. Пример: *а=&b; b=20; а содержит адрес переменной b, поэтому ЗНАЧЕНИЕ *а равно ЗНАЧЕНИЮ b, то есть 20. В этом примере можно догадаться об этом, но если вносить другие адреса переменных, то это знание помогает: Дальше по коду случается апдейт. a=&c; В переменной Указателе а содержался адрес переменной b, но мы присвоили в Указатель а адрес переменной с, поэтому теперь ЗНАЧЕНИЕ *а равняется ЗНАЧЕНИЮ переменной с. Что я и вывел на экран в коде. a=&c; Это выражение по моему это в чистом виде указатель, так как переменная а содержит адрес на другую переменную и ничего лишнего. Я этот текст сам медленно читаю чтоб понять только что написанное если что))) Сабзиро какой то в языке Си)) Я в шоке. Добавлено через 1 минуту
В данном примере *a=10; записан последним в коде, поэтому значение *a телепортируется в значение(ссылку *a) в этом коде int *a = &b; и значение а* стаёт равным значению b.
0
|
|||||||||||||||||||||
|
658 / 411 / 76
Регистрация: 21.09.2008
Сообщений: 1,411
|
||
| 21.08.2021, 08:20 | ||
|
В Сети нагуглить можно.
2
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||
| 21.08.2021, 09:20 | ||||||||
|
koeltrad, теперь свои рассуждения изложи кратко
![]()
1
|
||||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
||
| 21.08.2021, 10:35 | ||
![]() дополнение: конечно же, для компилятора глубоко по барабану на пробелы, и куда лепить звёздочку каждый делает по своему вкусу. Лично для меня удобнее совмещать звёздочку с типом. кому-то вон и египетские скобки нравятся
0
|
||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||
| 21.08.2021, 10:55 | ||||
|
Открывающая скобка это ведь невероятно важный символ, его обязательно надо вынести на отдельную строчку, да еще и отступ добавить. Чтобы тело условия ну никак нельзя было с условием связать. Ну и чтобы раздуть код в ширину и высоту - так он солиднее смотрится.
0
|
||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
| 21.08.2021, 15:40 [ТС] | |
|
Чтоб кратко изложить мне надо ещё немного потренироваться.
Главная мысль в том что а и *а не одно и то же. а это указатель, *а это ссылка для значений.(хотя адрес тоже находится в значении переменной а, в переменной без звёздочки). Вторая главная мысль в том что: int*a=&b; вместе с адресом переменной &b, в переменную *а качует значение переменной b. Из &b в а переходит адрес, в *а переходит значение b. Значение может переходить в обратную сторону: из b в *а.
0
|
|
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,337
|
|||||
| 21.08.2021, 18:38 | |||||
b не инициализирована. Никакому "нулю" она не равна.
0
|
|||||
|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
||||||||||||
| 21.08.2021, 21:52 [ТС] | ||||||||||||
----------------------- Версию со ссылками тем более никто не читал бы. Она скучнее. Телепортация- это я имел в виду сохранение значения переменной в нескольких местах одновременно. Добавлено через 6 минут А почему сохранение переменных во всех местах одновременно? Потому что если снизу приписать b=20; то значение у переменной b ВЫШЕ по коду появится. ВЫШЕ, Карл)) С простыми переменными так не сработает.
0
|
||||||||||||
|
из племени тумба-юбма
|
||
| 21.08.2021, 21:52 | ||
|
0
|
||
| 21.08.2021, 21:52 | |
|
Читаю книгу все работал а щас выдает такую ошибку
Читаю книгу Криса Касперски "Искусство дизассемблирования" читаю читаю не найду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
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
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|