Самый
авторитетный
краткий
справочник для
программистов
на C/C++
□ S В П R N Е lliffl
Основная информация по
программированию
Подробности о синтаксисе,
функциях, классах и методах
Простой доступ к стандартной
библиотеке шаблонов (STL)
Стандарт ANSI/ISO для языков С
и C++, включая новый стандарт
С99
Герберт Шилдт
Автор самых популярных книг по
программированию. На его счету более
2,5 миллионов проданных книг!
"Герберт Шилдт рассказывает программистам об интересующей их
теме доходчиво, кратко и авторитетно. " — ACM Computing Reviews
Об авторе
Герберт Шилдт (Herbert Schildt) — ведущий авторитет в
области программирования на языках С и C++, член комитетов
ANSI/ISO, которые принимали стандарт для языков С и C++. Продано свыше 2,5 миллионов экземпляров его книг. Они
переведены на все самые распространенные языки мира. Шилдт —
автор таких книг, как Полный справочник по С, C++: The
Complete Reference, C++ from the Ground Up, и многих других
бестселлеров, включая Windows 2000 Programming from the
Ground Up и MFC Programming from the Ground Up. Он также
является соавтором книги Java 2: The Complete Reference. Оглавление
Введение 19
1 Типы данных, переменные и константы 21
2 Функции, области видимости, пространства
имен и заголовки 43
3 Операторы 63
4 Препроцессор и комментарии , 79
5 Ключевые слова 91
6 Стандартные функции ввода-вывода языка С... . 131
7 Строковые и символьные функции 167
8 Математические функции языка С 183
9 Математические функции языка C++ 209
10 Функции времени, даты
и геополитической среды 217
11 Функции динамического выделения памяти 231
12 Функции смешанного типа 235
13 Функции обработки двубайтовых символов 259
14 Система ввода-вывода
старого стиля в языке C++ 271
15 Классы ввода-вывода библиотеки стандарта
ANSI/ISO для языка C++... . . :... . 297
16 Стандартная библиотека шаблонов C++ 329
17 Строки, исключения и классы арифметики
комплексных чисел в языке C++ 393
18 Библиотечные средства, добавленные
в версии С99 417
Предметный указатель 430
Содержание
Введение 19
1 Типы данных, переменные и константы 21
Основные типы 21
Объявление переменных 24
Инициализация переменных 24
Идентификаторы 24
Классы 25
Наследование 28
Структуры 29
Объединения 30
Перечисления 32
Теги языка С 33
Спецификаторы классов памяти 33
extern 33
auto 34
register . . , ; 34
static 35
mutable . -«. . , , 35
Квалификаторы типов 35
const 35
volatile < 36
restrict . ,. , 37
Массивы . ':... 37
Определение имен типов с помощью typedef 38
Константы 38
Шеетнадцатеричные и восьмеричные константы 39
Строковые константы 40
Логические (булевы) константы... 40
Комплексные константы 41
Специальные (управляющие) символьные константы 41
2 Функции, области видимости, пространства
имен и заголовки 43
ФУНКЦИИ ; ; 43
Рекурсия 44
Перегрузка функций... . . : : 46
Передача аргументов функции по умолчанию 47
Прототипы функций , 48
Области видимости и время жизни переменных 49
Пространства имен \ -. t. i. 50
Функция main О 51
Аргументы функции 52
Передача указателей 54
8 Содержание
Параметры-ссылки 55
Конструкторы и деструкторы 56
Спецификаторы функций 56
Спецификация компоновки 57
Стандартные библиотеки С и C++ 58
3 Операторы 63
Арифметические операторы 63
Операторы отношений и логические операторы 64
Поразрядные операторы 65
Операторы ь, I и л 65
Оператор дополнения до единицы 66
Операторы сдвига 66
Адресные операторы 68
Оператор взятия адреса & 68
Оператор разыменования адреса * 68
Операторы присваивания 69
Оператор? 70
Операторы доступа к членам объектов 70
Оператор последовательного вычисления 71
Оператор sizeof ; 72
Оператор приведения типа 72
Операторы приведения типа в языке C++ 72
Операторы ввода-вывода 73
Операторы указания на члены .
*и->* 74
Оператор разрешения области видимости :: 76
Операторы new И delete 76
Оператор typeid 76
Перегрузка операторов 77
Сводная таблица приоритетов операторов 77
4 Препроцессор и комментарии 79
«define '. 79
tterror 81
#if, Ufdef, #ifndef, #else, #elif и #endif 81
#include 83
#line 84
ttpragma 85
Оператор _Pragma в версии С99 85
Встроенные прагмы версии С99 85
(tundef 86
Операторы препроцессора # и ## 86
Зарезервированные имена макросов 88
Дополнительные встроенные макросы, определенные в
версии С99 88
Комментарии 89
Списки с переменным количеством аргументов 89
Содержание 9
5 Ключевые слова 91
asm 92
auto 92
bool 92
_Bool 93
break 93
case 94
catch 94
char 94
class 94
_Complex 95
const 95
const_cast : 96
continue 96
default 96
delete 97
do 97
double 97
dynamic_cast 98
else 98
enum 98
explicit 99
export 99
extern 99
false 100
float 100
for 100
friend 101
goto 101
if 103
„Imaginary 104
inline... 104
int 105
long 105
mutable 105
namespace 105
new 107
operator 108
private 109
protected 110
public 111
register 112
reinterpret_cast 112
restrict -. '. . , ... . . : 113
return 114
short 114
signed 115
sizeof 115
static 115
10 Содержание
static_cast 116
struct 116
switch 117
template 118
this 123
throw . . \ 123
true Ihk, 126
try , 3 126
typedef 126
typeid •. 126
typename 127
union r 127
unsigned 128
using 128
virtual... 128
void 129
volatile 129
wchar_t 130
while 130
6 Стандартные функции ввода-вывода языка С... . 131
clearerr 132
f close 133
feof 133
terror 134
f flush 134
fgetc 135
fgetpos 135
fgets 136
fopen 136
f print f 139
fputc 139
fputs 140
fread 141
f reopen 141
fscanf 142
fseek 142
fsetpos 143
ftell 144
f write 144
get с 145
get char 145
gets 146
perror 146
print f 148
Модификаторы формата, добавленные к функции
printf о стандартомС99 152
putc 152
put char 153
puts 153
Содержание 11
remove 154
rename 154
rewind 154
scanf „ 154
Модификаторы формата, добавленные к функции
scanf о стандартом С99 159
setbuf , 160
setvbuf 160
snprintf я. 161
sprint f 161
sscanf 162
tmpfile „163
tmpnam 163
ungetc 164
vprintf, vfprintf, vsprintf И vsnprintf 164
vscanf, vfscanf и vsscanf 165
7 Строковые и символьные функции 167
isalnum 168
isalpha 168
isblank 168
iscntrl 169
isdigit 169
isgraph 169
is lower 170
i sprint 170
ispunct 170
isspace 170
isupper 171
isxdigit 171
memchr 171
memcmp 172
memcpy , 172
memmove 173
memset 173
s treat 173
strchr 174
stremp 174
strcoll 174
strcpy 175
strcspn 175
strerror 176
strlen 176
st meat 176
strnemp 177
strncpy 177
strpbrk 178
strrchr 178
strspn 179
strstr 179
12 Содержание
strtok 179
strxfrm 180
tolower 182
toupper 182
8 Математические функции языка С 183
acos 186
acosh 187
rasin ■; ; 187
'asinh 187
atan 188
atanh 188
atan2 189
cbrt 189
ceil 189
copy sign 190
cos 190
cosh 190
erf 191
erf с 191
exp 191
exp2 192
expml -. 192
fabs 193
fdim 193
floor 193
fma 194
fmax 194
fmin 194
fmod 195
frexp : 195
hypot 195
ilogb 196
ldexp 196
1 gamma 197
llrint 197
llround 197
log , 198
logip ; 198
loglO 198
log2 199
logb 199
lrint 200
1 round 200
modf 200
nan 201
nearby in t 201
nextafter 202
next toward 202
pow 203
Содержание 13
remainder 203
remquo 203
rint 204
round. . ; 204
scalbn , 205
scalbln 205
sin 206
sinh 206
sqrt 206
tan 207
tanh 207
tgairana 207
trunc 208
9 Математические функции языка C++ 209
acos 210
asin 210
atan : 210
atan2 211
ceil 211
cos 211
cosh . - 212
exp 212
fabs 212
floor 212
fmod 213
frexp 213
ldexp 213
log 214
loglO 214
modf 214
pow 215
sin 215
sinh 215
sqrt 216
tan 216
tanh 216
10 функции времени, даты и геополитической среды 217
asctime 218
clock 218
ctime 219
difftime 219
gmtime 220
localeconv 220
local time 223
mktime 223
set locale 225
strftime 226
time 229
ь
14 Содержание
11 Функции динамического выделения памяти 231
calloc 232
free 232
malloc 233
realloc •. 233
12 Функции смешанного типа 235
abort 236
abs 236
assert 236
atexit 237
atof 237
atoi 238
atol 238
atoll 239
bsearch 239
div 240
exit 240
_Exit 240
getenv 241
labs 241
ldiv 242
llabs 242
lldiv 242
longjmp 243
mblen 244
mbstowcs 244
mbtowc 245
qsort 245
raise 246
rand 247
set jmp 247
signal 248
srand 249
strtod 249
strtof 250
strtol 250
strtold 251
strtoll 252
strtoul 252
strtoull 253
system 254
va_arg, va_start, va_endn va_copy 254
wcstombs 256
wctomb 257
13 Функции обработки двубайтовых символов 259
Функции классификации двубайтовых символов 260
Функции ввода-вывода двубайтовых символов 261
Строковые функции двубайтовых символов 264
Содержание 15
Преобразование строк двубайтовых символов 266
Работа с массивами двубайтовых символов 267
Преобразование объектов в двубайтовые символы 268
14 Система ввода-вывода старого
стиля в языке C++ 271
Базовые классы потоков ввода-вывода 272
Встроенные потоки C++ 273
Флаги форматирования 274
Манипуляторы ввода-вывода 275
Функции iostream старого стиля 277
bad 277
clear 277
eatwhite 277
eof 278
fail 278
fill 278
flags 279
flush 279
f stream, if stream И of stream 279
gcount 281
get 281
get line 282
good 283
ignore 283
open 284
peek 287
precision 287
put 288
putback 288
rdstate 288
read 289
seekg И seekp 289
setf 291
setmode 292
str 292
strstream, istrstream И ostrstream 293
sync_with_stdio 294
tellgHtellp 294
unset f 295
width 295
write 296
15 Классы ввода-вывода библиотеки
стандарта ANSI/ISO для языка C++ 297
Библиотека iostream стандарта C++ 297
Классы ввода-вывода библиотеки стандарта C++ 298
Встроенные потоки C++ ~ 301
Заголовки ввода-вывода 302
Флаги форматирования 302
16 Содержание
Манипуляторы ввода-вывода ... 304
О некоторых типах данных 307
Типы streamsize И streamof f 307
ТИПЫ streampos И wstreampos 308
Tnnblpos_typeHoff_type 308
ТИП open_mode 308
Тип iostate 308
Тип seekdir 309
Класс failure 309
Перегруженные операторы « и » 309
Функции ввода-вывода стандарта C++ 309
bad 310
clear 310
eof 310
exceptions 311
fail 311
fill 311
flags 312
flush 312
f stream, if str earn И of stream 313
gcount 314
get : 314
get line 315
good 316
ignore 316
open 317
peek 318
precision 318
put 320
putback 321
rdstate 321
read 322
readsome 322
seekgH seekp 322
setf 324
set state 325
str 325
str ingstream, istringstream и ostringstream 325
sync_with_stdio „- 326
tellgn tellp 327
unset f 327
width 328
write 328
16 Стандартная библиотека шаблонов C++ 329
Обзор STL 329
Контейнеры 329
Алгоритмы 330
Итераторы 330
Содержание 17
Другие элементы библиотеки STL 331
Контейнерные классы 335
bitset 336
deque 339
list 342
map 346
multimap 350
multiset 353
queue 355
prior ity_queue 356
set 357
stack 360
vector 361
Алгоритмы библиотеки STL 365
adjacent_f ind ,... . 366
binary_search 366
copy 367
copy_backward 367
count 367
count_if 367
equal 368
equal_range 368
fill И fill_n 369
find 369
find_end 369
find_first_of 370
find_if 370
for_each 371
generate Hgenerate_n 371
includes 371
inplace_merge 372
iter_swap 372
lexicographical_compare 373
lower_bound 373
make_heap 374
max 374
max_element 374
merge 375
min 375
min_element 375
mismatch 376
next_permutation '. 376
nth_element 377
partial_sort 377
partial_sort_copy 378
partition 378
pop_heap 379
prev_permutation 379
push_heap , 380
random_shuf f le 380
¥'
18 Содержание
remove, remove_if, remove_copy И remove_copy_if 380
replace, replace_copy, replace_if И replace_copy_if 381
reverse И reverse_copy 382
rotate И rotate_copy ... 383
search 383
search_n 384
set_difference 384
set_inter sect ion 385
set_symmetric_dif ference 385
set_union 386
sort 387
sort_heap 387
stable_partition 387
stable_sort 388
swap 388
swap_ranges 388
transform 388
unique Munique_copy 391
upper_bound : 391
17 Строки, исключения и классы арифметики
комплексных чисел в языке C++ 393
Строки , 393
Исключения 410
410
412
Классы арифметики комплексных чисел 413
18 Библиотечные средства, добавленные
в версии С99 417
Библиотека комплексных чисел 417
Библиотека вычислений с плавающей точкой 421
Заголовок -424
Функции преобразования целого формата 426
Математические макросы обобщенного, типа 427
Заголовок 429
Предметный указатель 430
Введение
С и C++ — самые значительные языки программирования
в мире.