[C/C++] Алфавит и основные понятия - Форум - Cheat-Master.Ru | Читерский Форум | Читы для SAMP,CS,Minecraft,CoD,Warface | Продажа аккаунтов SAMP,WoT,Steam,Origin,Warface | Баги,статьи SAMP-RP,Advance-RP,Diamond-RP | Магазин аккаунтов SAMP-RP,Advance-RP,Diamond-RP,Steam,WoT,Warface

Страница 1 из 11
Модератор форума: Radiance, karabawka, CentiuS 
Форум » Программирование » C++/C Программирование » [C/C++] Алфавит и основные понятия
[C/C++] Алфавит и основные понятия
AnniversaryДата: Четверг, 22.09.2016, 10:10 | Сообщение # 1
Боец
Группа: Заблокированные
Сообщений: 247
Статус: Offline
Войдите на сайт или зарегистрируйтесь для просмотра полного содержимого темы.

1. Алфавит

Множество символов языка C включает:

прописные буквы латинского алфавита;
строчные буквы латинского алфавита;
арабские цифры;
разделители: , . ; : ? ! ' " | / \ ~ _ ^ ( ) { } [ ] < > # % & - = + *

Остальные символы могут быть использованы только в символьных строках, символьных константах и комментариях. Язык C++ различает большие и маленькие буквы, таким образом, name и Name – разные идентификаторы.


2. Литералы

Литералы в языке C++ могут быть целые, вещественные, символьные и строковые.

Целые:
десятичные: 10, 132, -32179;
восьмеричные (предваряются символом «0»): 010, 0204, -076663;
шестнадцатеричные (предваряются символами «0х»): 0хА, 0x84, 0x7db3.

Вещественные: 15.75, 1.575e1, .75, -.125
Символьные: 'a', 'e', '.', '?', '2'.
Строковые: "строка".
<br / >( ) – выражение в скобках (используется для изменения порядка вычисления) или вызов функции.
[ ] – индексное выражение, используется для работы с массивами.
. и -> – выбор элемента, используются при работе с классами, структурами и объединениями.
Операции static_cast (преобразование с проверкой во время компиляции), dynamic_cast (преобразование с проверкой во время выполнения),reinterpret_cast (преобразование без проверки), const_cast(константное преобразование) осуществляют различные преобразования типов. Они имеют следующий синтаксис: операция<новый тип >( выражение). Угловые скобки являются элементом синтаксиса. Операция static_castосуществляет преобразование родственных типов, например, указателя на один тип к указателю на другой тип из той же иерархии классов, целый тип в перечисление или тип с плавающей точкой в интегральный. Операция reinterpret_cast управляет преобразованиями между несвязанными типами, например, целых в указатели или указателей в другие (несвязанные) указатели. Такое различие позволяет компилятору осуществлять минимальную проверку типов при использовании static_cast, а программисту – легче обнаружить опасные преобразования, представляемые reinterpret_cast. Преобразование dynamic_cast выполняется и проверяется на этапе выполнения. Преобразование const_castаннулирует действие модификатора const.
- – унарный минус.
~ – обратный код (см. лекцию 8).
! – логическое отрицание.
* – косвенная адресация (см. лекцию 5).
& – адресация (см. лекцию 5).
Операции ++ и -- инкрементируют (увеличивают на 1) и декрементируют (уменьшают на 1) свой операнд. Операнд должен иметь целый, вещественный тип или быть указателем. Операции инкремента и декремента могут записываться как перед своим операндом (префиксная форма записи), так и после него (постфиксная форма записи). При префиксной форме записи операнд сначала инкрементируется или декрементируется, а затем его новое значение участвует в дальнейшем вычислении выражения, содержащего данную операцию. При постфиксной форме записи операнд инкрементируется или декрементируется лишь после того, как его старое значение участвует в вычислении выражения. Таким образом, результатом операций инкремента и декремента является либо новое, либо старое значение операнда. Например, если переменная i = 0, то выражение a[++i] = 1 меняет элемент a[1], а выражение a[i++] = 1 меняет элемент a[0]. В обоих случая переменная i получает новое значение, равное 1.
sizeof – вычисление размера в байтах переменной или типа.
Операция приведения типа записывается следующим образом: (<новый тип>)<выражение>. Например, (long int)n приводит переменную n к типу long int. При преобразовании типов надо помнить, что при преобразовании между знаковыми/беззнаковыми значениями и при преобразовании от типа с большей размерностью к типу с меньшей размерностью могут возникнуть ошибки. Более безопасным способом преобразования типов является использование операций static_cast, dynamic_cast, reinterpret_cast и const_cast.
% – остаток от деления.
В языке C++ имеется одна тернарная операция – условная операция. Она имеет следующий синтаксис: <операнд 1> ? <операнд 2> : <операнд 3>. Если <операнд 1> имеет ненулевое значение, то вычисляется <операнд 2> и результатом условной операции является его значение. Если же <операнд 1> равен нулю, то вычисляется <операнд 3> и результатом является его значение. В любом случае вычисляется только один из операндов, <операнд 2> или <операнд 3>, но не оба.
Простое присваивание. Операция простого присваивания обозначается знаком «=». Значение правого операнда присваивается левому операнду. Операция вырабатывает результат, который может быть далее использован в выражении. Результатом операции является присвоенное значение. Например, выражение a = b = c = 0 присваивает всем переменным значение 0, а в результате вычисления выражения a = (b = 3) + (c = 5) переменная c будет иметь значение 5, переменная b будет иметь значение 3, и переменная a будет иметь значение 8.
Составное присваивание. Операция составного присваивания состоит из простой операции присваивания, скомбинированной с какой-либо другой бинарной операцией. При составном присваивании вначале выполняется действие, специфицированное бинарной операцией, а затем результат присваивается левому операнду. Оператор n += 5 эквивалентен оператору n = n + 5, но при этом первый оператор легче для понимания и выполняется быстрее.
Операция последовательного вычисления «,» обычно используется для вычисления нескольких выражений в ситуациях, где по синтаксису допускается только одно выражение. Однако, запятая, разделяющая параметры функции, не является операцией последовательного вычисления.

Порядок вычислений подвыражений внутри выражений не определён. В частности, не стоит предполагать, что выражения вычисляются слева направо.

int x = f(2) + g(3); // Неизвестно, какая функция вызовется первой – f() или g()
При отсутствии ограничений на порядок вычислений можно сгенерировать более качественный код. Однако отсутствие ограничений на порядок вычислений может привести к неопределённым результатам.

Логические операции «И» и «ИЛИ», условная операция и операция последовательного вычисления гарантируют определенный порядок вычисления своих операндов. Условная операция вычисляет сначала свой первый операнд, а затем, в зависимости от его значения, либо второй, либо третий операнд. Логические операции также обеспечивают вычисление своих операндов слева направо, причём логические операции вычисляют минимальное число операндов, необходимое для определения результата выражения. Таким образом, второй операнд выражения может вообще не вычисляться. Операция последовательного вычисления обеспечивает вычисление своих операндов по очереди, слева направо. Обратите внимание, что запятая в качестве указателя последовательности логически отличается от запятой, используемой в качестве разделителя параметров при вызове функций.

f1(v, i++);
f2((v, i++));// Два параметра
// Один параметр
Вызов функции f1 осуществляется с двумя параметрами v и i++, и порядок вычисления параметров не определён. Расчет на определённый порядок вычисления параметров является исключительно плохим стилем и приводит к непредсказуемому поведению программы. Вызов функции f2 имеет один параметр – последовательность выражений, разделённых запятой. Порядок вычисления гарантирован, и вызов эквивалентен f2(i++).




Сообщение отредактировал Anniversary - Вторник, 27.09.2016, 09:12
Ccылки
Найти еще что-нибудь в магазине:
CentiuSДата: Четверг, 22.09.2016, 23:35 | Сообщение # 2
Ignat Bantserov
Группа: Модераторы
Сообщений: 399
Статус: Offline
Войдите на сайт или зарегистрируйтесь для просмотра полного содержимого темы.

а зачем ее поднимать то? biggrin тут вроде и так не особо много тем создается
Ccылки
Найти еще что-нибудь в магазине:
[CM]HakuroДата: Вторник, 27.09.2016, 08:57 | Сообщение # 3
Боец
Группа: Пользователи
Сообщений: 155
Статус: Offline
Войдите на сайт или зарегистрируйтесь для просмотра полного содержимого темы.

выключи смайлы а то они код рушат, пожалуйста :D

тот самый пупс :-*

Мои темы:
http://cheat-master.ru/forum/14-335332-1
http://cheat-master.ru/forum/14-311685-1
http://cheat-master.ru/forum/107-558233-1
Ccылки
Найти еще что-нибудь в магазине:
AnniversaryДата: Вторник, 27.09.2016, 09:13 | Сообщение # 4
Боец
Группа: Заблокированные
Сообщений: 247
Статус: Offline
Войдите на сайт или зарегистрируйтесь для просмотра полного содержимого темы.



Ccылки
Найти еще что-нибудь в магазине:
Форум » Программирование » C++/C Программирование » [C/C++] Алфавит и основные понятия
Страница 1 из 11
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Сливы от [CM]prylatov [JZX81]

❊❊❊СКУПКА/ПРОДАЖА ВИРТОВ❊... [MoneyAkk]

Продам аккаунт на SRP 03 ... [vip1232]

Киньте крякнутый mix post... [Golden_Spy]

[1466094] SellerUP[CM] не... [Sayat55555]

[SAMP] Прокачка lvl'a... [Andreyka121212]

Продам,Чарли,ЛЕВ,17 донов [WarfaceG7]

Слейте мод [iKayako]

Новое окно загрузки SAMP [[CM]Neordenar]

Валид акк [Stefan221]

[1]>S0beit - pr9n project for samp 0.3.7 [9421]

[2]>RakBot 0.6.4 - прокачка аккаунтов без GTA [9108]

[3]>Часто задаваемые вопросы... [8091]

[4]>Advance-RP, Diamond-Rp, Amazing CRMP [7500]

[5]>Вопросы и ответы [6183]

[6]>[0.3.7][RUS] Sobeit modified by MishaN [6126]

[7]>Продажа вирт 1кк АМЕРП~ 400р АРП~400р ДРП~400р.СРП~150р. [5804]

[8]>SAMP-Bot 0.5.8.6 by Jamely [4581]

[9]>Бесконечное слово [4494]

[10]>[Samp-Rp.Ru]Обновлен список Админов (27.01.2016) [4112]

[11]>[CLEO] Вопрос - Ответ [4020]

[12]>Курилка [3110]

[1]>АК_47 [22004]

[2]>GеNius [6284]

[3]>romka619 [5458]

[4]>[CM]AGRESSOR [5028]

[5]>baffometi [4571]

[6]>Artem_Buero [3883]

[7]>Snake_Firm [3843]

[8]>[CM]Russel [3834]

[9]>iMaddy [2872]

[10]>Logan™ [2569]

[11]>zetkolya [2524]

[12]>Ch0c0Cube [2415]

[13]>[CM]Durman [2389]

[14]>[CM]ProKeyar [2357]

[15]>Sawyer [2282]

Ioancea228 [05.12.2016|17:30]

Djamal001 [05.12.2016|17:29]

Ingsіzе[CМ] [05.12.2016|17:28]

SunFuck [05.12.2016|17:28]

Georgy_161 [05.12.2016|17:27]

ENOT138rus [05.12.2016|17:25]

mavlynov666 [05.12.2016|17:24]

ham134 [05.12.2016|17:21]

FraimE [05.12.2016|17:21]

demadova [05.12.2016|17:20]

_n7even_ [05.12.2016|17:19]

koul321 [05.12.2016|17:19]

rusy228 [05.12.2016|17:18]

sergio_madero [05.12.2016|17:18]

berezkAxSpeaker [05.12.2016|17:17]


CM Team © 2009-2016 Администрация не несёт ответственности за размещённые материалы. Условия пользования
Все материалы предоставлены в ознакомительных целях и администрация предлагает удалить их после ознакомления.

Положение о защите персональных данных на сайте, Пользовательское соглашение, Договор оказания услуг.