| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
| Страници: (2) 1 [2] ( Първото ново мнение ) | ![]() ![]() ![]() |
| PxL |
Публикувано на: 11-07-2022, 18:57
|
||||
![]() Име: Димитър Т. Димитров Група: VIP Ранг: Почетен член Мнения: 3648 Регистриран на: 26.04.05 |
Въпроса е защо дереференцираш this, не защо го ползваш. Имената на файловете в проекта са важни, дори да не са толкова в курсова задача, добра практика е да се наименуват спрямо съдържанието. Иначе понеже ме помоли, конкретно по кода:
Това би могло да бъде в друг вид структура, което ще улесни добавяне на нов вид дисциплина (дори да няма такъв вариант за момента) и би разкарало тези "if/else" блокове. Също добре би било да се отдели от дефиницията за спортист. Това мнение е било редактирано от PxL на 11-07-2022, 19:03 -------------------- void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
|
||||
| samolet4e |
Публикувано на: 17-07-2022, 21:42
|
||||
![]() Име: Група: Потребител Ранг: Новопостъпил Мнения: 16 Регистриран на: 16.03.22 |
Не разбирам въпроса, признавам си. Разбира се, че трябва да дереференсирам указателя, за да прочета съдържанието в паметта на адрес, където указателят посочва. Впрочем този код
е напълно еквивалентен на този
Проблемът е, че оператор -> скрива дереференса и затова използвам по-архаичния и по-ясен вариант (*). Но, както вече написах, в този конкретен случай използването на this е излишно. |
||||
| DarkOne |
Публикувано на: 18-07-2022, 10:14
|
||
![]() Име: Александър Петков Група: Администратор Ранг: Почетен член Мнения: 3733 Регистриран на: 30.01.04 |
Не знам как го скрива, при положение че този оператор съществува само за да направи дереференциране. Т.е. създаден е специално, за да не се прави (*x).y
-------------------- The man who learns only what others know
is as ignorant as if he learns nothing. The treasures of knowledge are the most rare, and guarded most harshly. -- Chronicle of the First Age |
||
| dvader |
Публикувано на: 18-07-2022, 10:20
|
![]() Име: Валерий Тодоров Група: VIP Ранг: Почетен член Мнения: 5419 Регистриран на: 12.07.05 |
А някой знае ли изобщо защо е трябвало да бъде именно ->?
Какво е пречило да си се ползва точката за работа с указатели? В крайна сметка ако се ползва точка с указател или стрелка с не-указател компилатора свири грешка, демек знае разликата. -------------------- I find your lack of faith disturbing
|
| PxL |
Публикувано на: 18-07-2022, 13:57
|
||
![]() Име: Димитър Т. Димитров Група: VIP Ранг: Почетен член Мнения: 3648 Регистриран на: 26.04.05 |
Ок по-ясно, въпроса ми е от къде идва информацията, идентифицираща (*). като "по-ясният вариант"? Тук сме вече малко в офтопик както Дарк отбеляза, така че "feel free" да отговориш, просто любопитство. Като цяло пропуснах да отбележа, че според мен добре си се справила със задачата и още по-добре, че водиш дискусия по нея Това мнение е било редактирано от PxL на 18-07-2022, 14:08 -------------------- void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
|
||
| DarkOne |
Публикувано на: 18-07-2022, 17:03
|
||
![]() Име: Александър Петков Група: Администратор Ранг: Почетен член Мнения: 3733 Регистриран на: 30.01.04 |
Много добър въпрос, в SO има интересна историческа справка, според която всъщност в началото x->y и (*x).y не са били еквивалентни. Доста интересно четиво какви манджи е можело да се пишат на С -------------------- The man who learns only what others know
is as ignorant as if he learns nothing. The treasures of knowledge are the most rare, and guarded most harshly. -- Chronicle of the First Age |
||
| PxL |
Публикувано на: 18-07-2022, 18:14
|
![]() Име: Димитър Т. Димитров Група: VIP Ранг: Почетен член Мнения: 3648 Регистриран на: 26.04.05 |
мхм
Това мнение е било редактирано от PxL на 18-07-2022, 22:14 -------------------- void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
|
Страници: (2) 1 [2] |
![]() ![]() ![]() |