Lektsiya_3_2
.doc
Лекція 3
Введення в С
1. Алфавіт та словник мови С
ANSI C99
C11 (ISO/IEC 9899:2011).
A … Z;
a … z;
0 … 9.
Таблиця 3.1
Символ |
Назва |
|
Символ |
Назва |
, |
кома |
|
! |
знак оклику |
. |
крапка |
|
| |
вертикальна риска |
; |
крапка з комою |
|
/ |
риска, нахилена вправо (слеш) |
: |
двокрапка |
|
\ |
риска, нахилена вліво |
? |
знак питання |
|
~ |
тильда |
' |
апостроф |
|
_ |
символ підкреслювання |
( |
ліва кругла дужка |
|
# |
знак номера |
) |
права кругла дужка |
|
% |
відсоток |
{ |
ліва фігурна дужка |
|
& |
амперсанд |
} |
права фігурна дужка |
|
^ |
стрілка вгору |
< |
знак «менше» |
|
- |
знак мінус |
> |
знак «більше» |
|
= |
знак дорівнює |
[ |
ліва квадратна дужка |
|
+ |
знак плюс |
] |
права квадратна дужка |
|
* |
знак множення |
Таблиця 3.2
Спеціальний символ |
Шістнадцяткове значення в ASCII-коді |
Назва |
\n |
0A |
новий рядок |
\t |
09 |
горизонтальна табуляція |
\v |
0B |
вертикальна табуляція |
\b |
08 |
видалення попереднього символу |
\г |
0D |
повернення каретки |
\f |
0C |
нова сторінка |
\а |
07 |
звуковий сигнал |
\' |
27 |
апостроф |
\" |
22 |
подвійні лапки |
\\ |
5C |
зворотній слеш |
\? |
3F |
знак питання |
\ddd |
|
байтове значення у вісімковому представленні |
\xdd |
|
байтове значення в шістнадцятковому представленні |
Таблиця 3.3
Операція |
Назва |
|
Операція |
Назва |
! |
логічне НІ |
|
?: |
умовна операція |
~ |
зворотній код |
|
++ |
інкремент |
+ |
додавання, унарний плюс |
|
-- |
декремент |
- |
віднімання, унарний мінус |
|
= |
просте присвоювання |
* |
множення, непряма адресація |
|
!= |
не рівне |
/ |
ділення |
|
== |
рівне |
% |
остача від ділення |
|
+= |
присвоювання з додаванням |
<< |
зсув вліво |
|
-= |
присвоювання з відніманням |
>> |
зсув вправо |
|
*= |
присвоювання з множенням |
> |
більше |
|
/= |
присвоювання з діленням |
< |
менше |
|
%= |
присвоювання із остачею від ділення |
>= |
більше або рівне |
|
>>= |
присвоювання із зсувом вправо |
<= |
менше або рівне |
|
<<= |
присвоювання із зсувом вліво |
& |
порозрядне І; адресація |
|
&= |
присвоювання з порозрядним І |
| |
порозрядне включаюче АБО |
|
|= |
присвоювання з порозрядним включаючим АБО |
^ |
порозрядне виключаюче АБО |
|
^= |
присвоювання з порозрядним виключаючим АБО |
&& |
логічне І |
|
|| |
логічне АБО |
, |
послідовне виконання (кома) |
|
?:
<операнд1>?<операнд2>:<операнд3>
2. Базові типи даних.
char
int
float
double
void
signed, unsigned, long, short
Таблиця 3.4
Тип |
Розмір в бітах |
Мінімальний діапазон (стандарт С11) |
char |
8 |
від -127 до 127 |
unsigned char |
8 |
від 0 до 255 |
signed char |
8 |
від -127 до 127 |
int |
16 або 32 |
від -32767 до 32767 |
unsigned int |
16 або 32 |
від 0 до 65535 |
signed int |
16 або 32 |
такий самий, як у int |
short int |
16 |
від -32767 до 32767 |
unsigned short int |
16 |
від 0 до 65535 |
signed short int |
16 |
такий самий, як у short int |
long int |
32 |
від -2 147 483 647 до 2 147 483 647 |
long long int |
64 |
від -(263-1) до (263-1), доданий стандартом C99 |
signed long int |
32 |
такий самий, як у long int |
unsigned long int |
32 |
від 0 до 4 294 967 295 |
unsigned long long int |
64 |
від 0 до (264-1), доданий стандартом C99 |
float |
32 |
від 1E-37 до 1E+37, з точністю не менше 6 значущих десяткових цифр |
double |
64 |
від 1E-37 до 1E+37, з точністю не менше 10 значущих десяткових цифр |
long double |
80 |
від 1E-37 до 1E+37, з точністю не менше 10 значущих десяткових цифр |
signed |
signed int |
unsigned |
unsigned int |
long |
long int |
short |
short int |
ASCII
_Bool
true
false
<stdbool.h>
bool, true та false
3. Константи
0
0х або 0Х
0х<шістнадцяткові цифри>або 0Х<шістнадцяткові цифри>
Приклади
10 012 0ха або 0ХА
132 0204 0х84
Таблиця 3.5
Десяткові константи |
Вісімкові константи |
Шістнадцяткові константи |
12L |
012L |
0xaL або 0xAL |
0l |
0115l |
0х4fl або 0x4Fl |
U (або u)
L і U
long long
LL або ll.
Таблиця 3.6
Суфікс |
Десяткова константа |
Вісімкова або шістнадцяткова константа |
немає |
int long int long long int |
int unsigned int long int unsigned long int long long int unsigned long long int |
u або U |
unsigned int unsigned long int unsigned long long int |
unsigned int unsigned long int unsigned long long int |
l або L |
long int long long int |
long int unsigned long int long long int unsigned long long int |
u або U та l або L |
unsigned long int unsigned long long int |
unsigned long int unsigned long long int |
ll або LL |
long long int |
long long int unsigned long long int |
u або U та ll або LL |
unsigned long long int |
unsigned long long int |
[<цифри>][.<цифри>][<E>[-]цифри]
1.57Е1
157Е-2
.007Е3
.71
-0.0025
-2.5e-3
f або F
l або L
(')
(\)
'\'' і '\\'
'\n'
Таблиця 3.7
Константа |
Значення |
'а' |
мала буква а |
'?' |
знак питання |
'\х1В' |
символ ESC в ASCII-коді |
'An', '\n\t'
wchar_t
<stddef.h>
L 'A', L '2', L '$'
"Це символьний рядок\n"
“Один\\Два” - розібратись з цими фішками!!!!!!!!
"\"Так, звичайно,\" – відповіли."
"Наступний рядок – порожній:"
""
"Рядок роз\
ділено на частини."
"Рядок розділено на частини."
Приклад
char str[] = "Рядок роз\
ділено на частини.";
char str[] = "Рядок роз\
ділено на частини.";
#include <stdio.h>
#include <locale.h>
int main(void)
{
setlocale(LC_ALL, "ukr");
char str[] = "Приклад програми, яка "
"автоматично\nздійснює об`єднання "
"рядків в довгий рядок; \n"
"така форма запису підвищує "
"наочність програми.\n";
printf("%s", str);
return 0;
}
Приклад програми, яка автоматично
здійснює об'єднання рядків в довгий рядок;
така форма запису підвищує наочність програми.
('\0')
Unicode
char16_t
u
char32_t
U
UTF-16
UTF-32
<uchar.h>
Unicode
L, u та U
UTF-8 кодування рядків ->u8
4. Ідентифікатори
Таблиця 3.8
Стандарт |
Кількість значущих символів в зовнішньому ідентифікаторі |
Кількість значущих символів у внутрішньому ідентифікаторі |
С89 |
щонайменше 6 |
31 |
С99 |
31 |
63 |
С11 |
визначається реалізацією компілятора |
|
$
5. Ключові слова
#define BOOL int
BOOL
int
6. Коментарі
/*<символи>*/
/*коментар*/
/****
коментар
****/
// це однорядковий коментар
