Читать онлайн «C/C++. Справочник программиста»

Автор Герберт Шилдт

Самый авторитетный краткий справочник для программистов на 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++ — самые значительные языки программирования в мире.