|
11 / 7 / 4
Регистрация: 29.07.2019
Сообщений: 701
|
|
Читаю книгу14.08.2021, 19:12. Показов 14213. Ответов 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
|
|||
|
фрилансер
6486 / 5713 / 1133
Регистрация: 11.10.2019
Сообщений: 15,232
|
|
| 20.08.2021, 20:34 | |
|
мама Стифлера, разыменование - это оператор. Это не относится к объявлению переменной-указателя
Добавлено через 33 секунды так же, как и взятие адреса
0
|
|
|
из племени тумба-юбма
|
||
| 20.08.2021, 20:52 | ||
int* a, b; - хороший пример привели. Чтоб не путаться, реально проще прилепить звездочку к переменной. Пусть даже по синтаксису это не правильно.
0
|
||
|
фрилансер
6486 / 5713 / 1133
Регистрация: 11.10.2019
Сообщений: 15,232
|
|||
| 20.08.2021, 20:56 | |||
|
Или, давай, вообще всё в одну строчку писать ![]() ![]() в Си полно таких вещей ))
0
|
|||
|
из племени тумба-юбма
|
|
| 20.08.2021, 21:12 | |
|
Это тяжело понять. То есть, когда просто объявляем указатель, то пишем так
int* ptr;А когда объявляем с инициализацией, нужно писать так int *ptr = &b;
0
|
|
|
фрилансер
6486 / 5713 / 1133
Регистрация: 11.10.2019
Сообщений: 15,232
|
|||||||||||
| 20.08.2021, 21:31 | |||||||||||
|
мама Стифлера, нет, в обоих случаях звёздочка логичнее смотрится прилепленной к типу
мама Стифлера, может, вот так нагляднее будет
789Добавлено через 2 минуты подправил
2
|
|||||||||||
|
из племени тумба-юбма
|
||||||
| 20.08.2021, 21:53 | ||||||
|
Алексей1153,
с typedef еще запутанней вышло, лучше уж такКликните здесь для просмотра всего текста
В общем вроде понял. Если указан тип переменной, то звезду всегда лепить сразу после типа. А если типа нет, тогда лепить перед переменной и это означает разыминовывание, или присвоение. Ну как то так наверно.
0
|
||||||
|
фрилансер
6486 / 5713 / 1133
Регистрация: 11.10.2019
Сообщений: 15,232
|
||
| 20.08.2021, 22:04 | ||
|
1) синтаксис объявления указателя: указуемый_тип* имя_указателя /*=инициализация*/; 2) синтаксис применения оператора разыменования: * имя_указателя или * выражение_возвращающее_адрес------ это два разных и не связанных между собой события: объявление указателя и разыменование при работе с указателем при разыменовании можно лепить пробелов сколько угодно - логически это не мешает(хотя и смотрится некрасиво). Это такой же унарный оператор, как + 1; //унарный плюса алиасом через typedef я всего лишь хотел подчеркнуть, что звёздочка - это часть типа указателя
1
|
||
|
4093 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,984
|
||||||||||||
| 21.08.2021, 00:16 | ||||||||||||
0
|
||||||||||||
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,299
|
||
| 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
|
|||||||||||||||||||||
|
657 / 410 / 76
Регистрация: 21.09.2008
Сообщений: 1,410
|
||
| 21.08.2021, 08:20 | ||
|
В Сети нагуглить можно.
2
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
||||||||
| 21.08.2021, 09:20 | ||||||||
|
koeltrad, теперь свои рассуждения изложи кратко
![]()
1
|
||||||||
|
фрилансер
6486 / 5713 / 1133
Регистрация: 11.10.2019
Сообщений: 15,232
|
||
| 21.08.2021, 10:35 | ||
![]() дополнение: конечно же, для компилятора глубоко по барабану на пробелы, и куда лепить звёздочку каждый делает по своему вкусу. Лично для меня удобнее совмещать звёздочку с типом. кому-то вон и египетские скобки нравятся
0
|
||
|
4093 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,984
|
||||
| 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
|
|
|
Вездепух
13205 / 6840 / 1822
Регистрация: 18.10.2014
Сообщений: 17,299
|
|||||
| 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 | |
|
Помогаю со студенческими работами здесь
180
Читаю книгу все работал а щас выдает такую ошибку
Читаю книгу Криса Касперски "Искусство дизассемблирования" читаю читаю не найду
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|