СЪДЪРЖАНИЕ
1 Основи на С ... 21
1.1 Компонентите на една С програма 22
1.2 Създаване и компилиране на програма 27
1.3 Деклариране на променливи и присвояване на стойности 30
1.4 Въвеждане на числа от клавиатурата 35
1.5 Извършване на изчисления посредством аритметични изрази 36
1.6 Добавяне на коментари в програмата 39
1.7 Писане на ваши-собствени функции 42
1.8 Използване на функции за връщане на стойности 46
1.9 Използване на аргументи на функции 50
1.10 Ключовите думи в С 53
2 Представяне на управляващите конструкции в С ... 57
2.1 Запознаване с if 59
2.2 Добавяне на else 61
2.3 Създаване на блокове с код 63
2.4 Използване на цикъл for 66
2.5 Замяна на операторите за инкрементиране и декрементиране в С 70
2.6 Разширяване на възможностите на printf( ) 74
2.7 Програмиране с логически оператори и оператори за сравнение 77
3 Още управляващи конструкции в С ... 83
3.1 Четене на знакове от клавиатурата 85
3.2 Влагане на конструкции if 89
3.3 Вариациите на цикъла for 92
3.4 Цикълът while на С 96
3.5 Използване на цикъла do 98
3.6 Създаване на вложени цикли 100
3.7 Използване на break за излизане от цикъл 102
3.8 Използване на конструкцията continue 105
3.9 Избор между алтернативи чрез конструкцията switch 107
3.10 Конструкцията goto 112
4 из^ите°. “""“le® На ТИПОВете данни’ "Роменливите и
4.1 Използване на модификаторите за типове данни в С 117
4.2 Къде се декларират променливи 122
4.3 Константите отблизо 129
4.4 Инициализиране на променливи 132
4.5 Конвертиране на типовете при пресмятане на изрази 135
4.6 Конвертиране на типове при присвоявания 138
4.7 Преобразуване на типове 141
5 Масиви и низове , . . 145
5.1 Деклариране на едномерни масиви 147
5.2 Използване на низове 152
5.3 Създаване на многомерни масиви 158
5.4 Инициализиране на масиви 161
5.5 Построяване на масиви от низове 165
6 Използване на указатели ... 171
6.1 Основните понятия за указателите 173
6.2 Ограничения за изразите с указатели 177
6.3 Използване на указатели с масиви 181
6.4 Използване на указатели към низови константи 188
6.5 Създаване на масиви от указатели 190
6.6 Множествената индиректност 192
6.7 Използване на указатели като параметри 194
7 Подробно разглеждане на функциите . . 199
7.1 Прототипи на функции 200
7.2 Рекурсия 210
7.3 Подробно разглеждане на параметрите 214
7.4 Предаване на аргументи на main( ) 218
7.5 Сравняване на по-старите декларации на параметри със съвременните 222
8 Конзолен вход/изход ... 227
8.1 Още една предпроцесорна директива 229
Въвеждане и извеждане на знакове и низове 233 Някои нестандартни конзолни функции 235 По-подробно разглеждане на gets( ) и puts( ) 238 Овладяване на printf( ) 240 Овладяване на scanf( ) 246
9 Файлов вход/изход . . • 255
9.1 Какво представляват потоците 257
9.2 Основите на файловата система 258
9.3 feof( ) и ferror( ) 266
9.4 Някои текстови функции от високо ниво 270 g 5 Четене и записване на двоични данни 274
9.6 Произволен достъп 280
9 7 Различни функции на файловата система 284 9.8 Стандартните потоци 287
10 Структури и обединения . . . 293
10.1 Основи на структурите 294
10.2 Деклариране на указатели към структури 306
10.3 Работа с вложени структури 310
10.4 Какво представляват побитовите полета 315
10.5 Създаване на обединения 319
11 Разширени типове данни и оператори . . . 327
11.1 Използване на спецификаторите от класа за съхранение 329
11.2 Използване на модификаторите за достъп 338
11.3 Дефиниране на изброявания 342
11.4 Какво представлява typedef 346
11.5 Използване на побитовите оператори на С 348
11.6 Овладяване на операторите за изместване 352
11.7 Операторът? 354
11.8 Още за оператора за присвояване 357
11.9 Операторът запетая 359
11.10 Приоритетите на операциите 361
12 Предпроцесорът на С и някои професионални теми . . . 365
12.1 Още за #define и #include 367
12.2 Условно компилиране 371
12.3 #error, #undef, #line и #pragma 377
12.4 Вградените в С макроси 380
12.5 Използване на операторите # и ## 382
12.6 Указатели към функции 383
12.7 Овладяване на динамичното заделяне 389
А Често използвани библиотечни функции на С 397
А.1 Низови и знакови функции 398 А.2 Математически функции 409 А.З Функции за час и дата 417 А.4 Функции за динамично заделяне 423 А.5 Други функции 426
В Преглед на ключовите думи в С . . 439
С План на Windows програма ... 451
Коя версия на Windows? 452
Перспективите на Windows програмирането 452
Как взаимодействат Windows и вашата програма 455
Windows е многозадачен 456
WIN32 API 456
Компонентите на един прозорец 457
Някои основи на Windows приложенията 458
Функцията на прозореца 470
Няколко думи за дефиниционните файлове 471
Конвенциите за имената 471
За да научите повече 471
2.1 Упражнения 479
2.2 Упражнения 479
2.3 Упражнения 480
2.4 Упражнения 480
2.5 Упражнения 481
2.6 Упражнения 482
2.7 Упражнения 482
Проверка на уменията, представени в
главата Глава 2 482
Преглед на знанията Глава 3 484
3.1 Упражнения 485
3.2 Упражнения 486
3.3 Упражнения 487
3.4 Упражнения 488
3.5 Упражнения 489
3.6 Упражнения 489
3.7 Упражнения 490
3.8 Упражнения 491
3.9 Упражнения 491
3.10 Упражнения 492
Проверка на уменията, представени в главата Глава 3 492
Проверка на натрупаните знания Глава 3 494 Преглед на знанията Глава 4 494
4.1 Упражнения 496
5.2 Упражнения 503
5.3 Упражнения 504
5.4 Упражнения 504
5.5 Упражнения 505
Проверка на уменията, представени в главата Глава 5 506
Проверка на натрупаните умения Глава 5 507 Преглед на знанията Глава 6 510
6.1 Упражнения 511
6.2 Упражнения 512
6.3 Упражнения 512
6.4 Упражнения 512
6.5 Упражнения 513
6.6 Упражнения 513
6.7 Упражнения 514
Проверка на уменията, представени в главата Глава 6 515
Проверка на натрупаните умения Глава 6 515 Преглед на знанията Глава 7 516
7.1 Упражнения 517
7.2 Упражнения 518
7.3 Упражнения 519
7.4 Упражнения 519
7.5 Упражнения 521
Проверка на уменията, представени в главата Глава 7 521
Проверка на натрупаните умения Глава 7 523 Преглед на знанията Глава 8 524
8.1 Упражнения 525
8.2 Упражнения 526
8.3 Упражнения 526
8.4 Упражнения 527
8.5 Упражнения 527
8.6 Упражнения 527
Проверка на уменията, представени в главата Глава 8 528
Проверка на натрупаните умения Глава 8 529 Преглед на знанията Глава 9 533
9.2 Упражнения 534
9.3 Упражнения 536
9.4 Упражнения 538
9.5 Упражнения 542
9.6 Упражнения 543
9.7 Упражнения 545
9.8 Упражнения 545
Проверка на уменията, представени в главата Глава 9 546
Проверка на натрупаните умения Глава 9 548 Преглед на знанията Глава 10 552
10.1 Упражнения 555
10.2 Упражнения 557
10.3 Упражнения 558
10.4 Упражнения 561
10.5 Упражнения 561
Проверка на уменията, представени в главата Глава 10 563
Проверка на натрупаните умения Глава 10 565 Преглед на знанията Глава 11 567
11.1 Упражнения 568
11.2 Упражнения 568
11.3 Упражнения 569
11.4 Упражнения 569
11.5 Упражнения 570
11.6 Упражнения 571
11.7 Упражнения 573
11.8 Упражнения 573
11.9 Упражнения 573
Проверка на уменията, представени в главата Глава 11 574
Проверка на натрупаните умения Глава 11 575 Преглед на знанията Глава 12 579
12.1 Упражнения 580
12.2 Упражнения 580
12.5 Упражнения 581
12.6 Упражнения 581
12.7 Упражнения 583
Проверка на уменията, представени в главата Глава 12 584
Проверка на натрупаните умения Глава 12 585