Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Вказівники і масиви
Будь-яку операцію, яку можна виконати за допомогою індексів масиву, можна виконати і за допомогою вказівників. Варіант із вказівниками більш швидкий, але й більш складний для розуміння. Опис int a[10]; визначає масив розміром 10, тобто набір з 10 послідовних об’єктів a[0], a [1],..., a [9]. Запис a [i] відповідає елементу масиву через i позицій від початку. Якщо ра – вказівник цілого, описаний як int *pa, то присвоєння pa = & a [0] означає, що pa вказує на нульовий елемент масиву a, тобто ра містить адресу елемента a [0]. Присвоєння x = * pa буде копіювати вміст a [0] у x. Якщо pa вказує на деякий певний елемент масиву a, то pa + 1 вказує на наступний елемент. Взагалі pa-і вказує на елемент, який розміщено на i позицій до елемента, що вказується pa, а pa + i на елемент, розміщений на i позицій після елемента. Отже, якщо ра вказує на а [0], то *(ра + 1) посилається на вміст а [1], ра + і – адреса а [ і ], а *(ра + і) – вміст а [ і ]. Ці зауваження справедливі незалежно від типу змінних у масиві a. Очевидно існує дуже тісна відповідність між індексацією і арифметикою вказівників. Насправді компілятор перетворить посилання на масив у вказівник на початок масиву. В результаті цього ім’я масиву є вказівником виразу, тобто ім’я масиву є синонімом місця розташування його нульового елемента. Тому pa = & a [0] можна записати як pa = a. Посилання на a [ i ] можна записати у вигляді *(a + i), тобто ці дві форми еквівалентні. Якщо застосувати операцію & до обох частин такого співвідношення еквівалентності, то & a [ i ] і a+i теж будуть ідентичними: a+i – адреса i -го елемент від початку a. Проте, якщо pa є вказівником, то у виразах його можна використати з індексом pa [ i ], що ідентично *(pa+i). Отже, будь-який вираз, який містить масиви й індекси, можна записати через вказівники та зсуви і навпаки. Слід мати на увазі, що вказівник є змінною, тому операції pa = a і pa ++ мають сенс. Але ім’я масиву є константою, а не змінною, Коли ім’я масиву передається функції, то насправді їй передається місце розташування початку цього масиву. Отже ім’я масиву як аргумент дійсно є вказівником, тобто змінною, яка містить адресу. Розглянемо функцію StrLen (див. ПП6.4 на СD), яка обчислює довжину рядка, де описи формальних параметрів char s[]; char *s; еквівалентні, і який вид опису варто використати, визначається тим, які вирази будуть використані для написання функції. Можна передати функції частину масиву, якщо задати як аргумент вказівник початку підмасиву. Наприклад, якщо a – масив, то як F (& a [2]), так і F (a +2) передають функції F адресу елемента a [2], оскільки і & a [2], і a +2 є вказівними виразами, що посилаються на третій елемент a.
|