Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное
Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Язык программирования Си. Издание 3-е, исправленное"
Описание и краткое содержание "Язык программирования Си. Издание 3-е, исправленное" читать бесплатно онлайн.
Книга широко известных авторов, разработчиков языка Си, переработанная и дополненная с учетом стандарта ANSI для языка Си, 2-е английское издание которой вышло в 1988 году, давно стала классикой для всех изучающих и/или использующих как Си, так и Си++. Русский перевод этой книги впервые был выпущен изд- вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неизменным спросом читателей.
Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания, размещенные автором на странице http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html.
Для программистов, преподавателей и студентов.
Издание подготовлено при участии издательства "Финансы и статистика"
• Компиляторам более не разрешается трактовать математическую ассоциативность операторов как вычислительную ассоциативность.
• Введен унарный оператор + для симметрии с унарным -.
• Разрешено использовать указатель на функцию в качестве ее именующего выражения без явного оператора * (см. A7.3.2).
• Структурами разрешено оперировать при присваиваниях, можно передавать структуры в качестве аргументов функциям и получать их в качестве результата от функций.
• Разрешено применять оператор получения адреса & к массиву; результатом является указатель на массив.
• В первой редакции результат операции sizeof имел тип int; во многих реализациях он заменен на unsigned. Стандарт официально объявляет его зависимым от реализации, но требует, чтобы он был определен в заголовочном файле <stddef.h> под именем size_t. Аналогичное изменение было сделано в отношении типа разности указателей) который теперь выступает под именем ptrdiff_t (см. A7.4.8 и A7.7).
• Запрещено применять оператор получения адреса & к объекту типа register даже тогда, когда данный компилятор не располагает его на регистре.
• Типом результата операции сдвига является тип ее левого операнда; тип правого операнда на повышение типа результата влияния не оказывает (см. A7.8).
• Стандарт разрешает адресоваться с помощью указателей на место, лежащее сразу за последним элементом массива, и позволяет оперировать с такими указателями, как с обычными, см. A7.7.
• Стандарт вводит (заимствованный из C++) способ записи прототипа функции с включением в него типов параметров и явного указания о возможности их изменения и формализует метод работы с переменным списком аргументов. (см. A7.3.2, A8.6.3, B7.) С некоторыми ограничениями доступен и старый способ записи.
• Стандартом запрещены пустые объявления, т. е. такие, в которых нет объявителей и не объявляется ни одной структуры, объединения или перечисления. Однако объявление с одним тегом структуры (или объединения) переобъявит ее даже в том случае, если она была объявлена во внешней области действия.
• Запрещены объявления внешних данных, не имеющие спецификаторов и квалификаторов (т. е. объявления с одним "голым" объявителем).
• В некоторых реализациях, когда extern-объявление расположено во внутреннем блоке, его область видимости распространяется на остальную часть файла. Стандарт вносит ясность в эту ситуацию и объявляет, что область видимости такого объявления ограничена блоком.
• Область видимости параметров "вставляется" в составную инструкцию, представляющую собой тело функции, так что объявления на верхнем уровне функции не могут их "затенить".
• Несколько изменены именные пространства идентификаторов. Всем тегам структур, объединений и перечислений стандарт выделяет одно именное пространство; для меток инструкций вводится отдельное именное пространство (см. A11.1). Кроме того, имена элементов связаны со структурой или объединением, частью которого они являются. (С некоторых пор это общепринятая практика.)
• Допускается инициализация объединения; инициализатор относится к первому элементу объединения.
• Разрешается инициализация автоматических структур, объединений и массивов, хотя и с некоторыми ограничениями.
• Разрешается инициализация массива символов с помощью строкового литерала по точному количеству указанных символов (без '\0').
• Управляющее выражение и case-метки в switch могут иметь любой целочисленный тип.
Предметный указатель
0... константа восьмеричная 2.3, A2.5.1
0x... константа шестнадцатеричная 2.3, A2.5.1
... многоточие 7.3, A7.3.2
>= оператор больше или равно 2.6, A7.9
> оператор больше чем 2.6, A7.9
- оператор вычитания 2.5, A7.7
-- оператор декремента 1.5.2, 2.8, 5.5, A7.3.4, A7.4.1
/ оператор деления 1.2, 2.5, A7.6
% оператор деления по модулю 2.5, A7.6
. оператор доступа к элементу структуры 6.1, A7.3, A7.3.3
-> оператор доступа к элементу структуры через указатель 6.2, A7.3, A7.3.3
, оператор запятая 3.5, A7.18
++ оператор инкремента 1.5.2, 2.8, 5.5, A7.4, A7.4.1
* оператор косвенного доступа 5.1, A7.4.3
&& оператор логического И 1.5.4, 2.6, 2.9, A7.14
|| оператор логического ИЛИ 1.5.4, 2.6, 2.9, A7.15
! оператор логического отрицания 2.6, A7.4, A7.4.7
<= оператор меньше или равно 2.6, A7.9
< оператор меньше чем 2.6, A7.9
!= оператор неравенства 1.5.1, 2.6, A7.10
& оператор побитового И 2.9, A7.11
| оператор побитового ИЛИ 2.9, A7.13
^ оператор побитового исключающего ИЛИ 2.9, A7.12
~ оператор побитового отрицания 2.9, A7.4.6
& оператор получения адреса 5.1, A7.4.2
# оператор препроцессора 4.11.2, A12.3
## оператор препроцессора 4.11.2, A12.3
= оператор присваивания 1.5.1, 2.6, A7.17
+= оператор присваивания 2.10
== оператор равенства 1.5.3, 2.6, A7.10
<< оператор сдвига влево 2.9, A7.8
>> оператор сдвига вправо 2.9, A7.8
+ оператор сложения 2.5, A7.7
* оператор умножения 2.5, A7.6
- оператор унарный минус A7.4.5
+ оператор унарный плюс A7.4.4
" символ двойная кавычка 1.1, 1.5.3, 2.3, A2.5.2, A2.6
' символ кавычка 1.5.3, 2.3, A2.5.2
\0 символ нулевой 1.9, 2.3, A2.5.2
\\ символ обратная наклонная черта 1.1, 2.3
_ символ подчеркивания 2.1, A2.3, B
?: условное выражение 2.11, A7.16
Ааргументы командной строки 5.10
Ббесконечный цикл for( ; ; ) 3.5, 4.11.2
библиотечная функция 1.1, 4.1, 4.3, Приложение B
abort B5
abs B5
acos B4
asctime B10
asin B4
atan, atan2 7.8.6, B4
atof B5
atoi B5
atol B5
bsearch B5
calloc 7.8.5, B5
ceil B4
clearerr B1.7
clock B10
cos 7.8.6, B4
cosh B4
ctime B10
difftime B10
div B5
exit 7.6, B5
exp 7.8.6, B4
fabs 7.8.6, B4
fclose 7.5, B1.1
feof 7.6, B1.7
ferror B1.7
fflush B1.1
fgetc B1.4
fgetpos B1.6
fgets 7.7, B1.4
filecopy 7.6
floor B4
fmod B4
fopen 7.5, B1.1
fprintf 7.5, B1.2
fputc B1.4
fputs 7.7, B1.4
fread B1.5
free B5
freopen B1.1
frexp B4
fscanf 7.5, B1.3
fseek B1.6
fsetpos B1.6
ftell B1.6
fwrite B1.5
getc 7.5, B1.4
getchar 1.5, 7.1, 7.5, B1.4
getenv B5
gets B1.4
gmtime B10
isalnum 7.8.2, B2
isalpha 7.8.2, B2
iscntrl B2
isdigit 7.8.2, B2
isgraph B2
islower 7.8.2, B2
isprint B2
ispunct B2
isspace 7.8.2, B2
isupper 7.8.2, B2
isxdigit B2
labs B5
ldexp B4
ldiv B5
localtime B10
log, log10 7.8.6, B4
longjmp B8
malloc 6.5, 7.8.5, B5
memchr B3
memcmp B3
memcpy B3
memmove B3
memset B3
mktime B10
modf B4
perror B1.7
pow 7.8.6, B4
printf B1.2
putc 7.5, B1.4
putchar 1.5, 7.1, B1.4
puts 7.7, B1.4
qsort B5
raise B9
rand B5
realloc B5
remove B1.1
rename B1.1
rewind B1.6
scanf 7.4, B1.3
setbuf B1.1
setjmp B8
setvbuf B1.1
signal B9
sin 7.8.6, B4
sinh B4
sprintf 7.2, B1.2
sqrt 7.8.6, B4
srand B5
sscanf B1.3
strcat 7.8.1, B3
strchr 7.8.1, B3
strcmp 7.8.1, B3
strcpy 7.8.1, B3
strcspn B3
strerror B3
strftime B10
strlen 7.8.1, B3
strncat 7.8.1, B3
strncmp 7.8.1, B3
strncpy 7.8.1, B3
strpbrk B3
strrchr 7.8.1, B3
strspn B3
strstr B3
strtod B5
strtok B3
strtol B5
strtoul B5
system B5
tan B4
tanh B4
time B10
tmpfile B1.1
tmpnam B1.1
tolower 7.8.2, B2
toupper 7.8.2, B2
ungetc 7.8.3, B1.4
vfprintf 8.3, B1.2
vprintf 8.3, B1.2
vsprintf 8.3, B1.2
бинарное дерево 6.5
бинарный поток 7.5, B1
битовое поле
выравнивание 6.9, A8.3
объявление 6.9, A8.3
биты, образцы манипулирования 2.9, 6.9
блок см. также составная инструкция
структура 3.1, 4.8, A9.3
инициализация в. 4.9, A9.3
буферизация см. setbuf, setvbuf
буферизованный getchar 8.2
быстрая сортировка 4.10, 5.6
Вввод
без буферизации 8.2
возврат символа на 4.3
с буферизацией 8.2
с клавиатуры 1.1, 7.1, 8.1
форматный см. scanf
ввод-вывод
символов 1.5, 7.1
ошибки 7.6, B1.7
перенаправление 7.1, 7.5, 8.1
с терминала 1.5
високосный год, вычисление 2.5, 5.7
вывод на экран 1.5, 7.1, 7.5, 8.1
перенаправление 7.1
форматный см. printf
вызов
по значению 1.8, 5.2, A7.3.2
по указателю 1.8, 5.3
выравнивание битового поля
с помощью union 8.7
ограничения по 6.4, 6.5, 6.8, 7.8.5, 8.7, A6.6
выражение A7
в скобках A7.2
константное 2.3, 3.4, 4.11.3, A7.19
логическое, численное значение 2.7
очередность вычисления 2.12, A7
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Язык программирования Си. Издание 3-е, исправленное"
Книги похожие на "Язык программирования Си. Издание 3-е, исправленное" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное"
Отзывы читателей о книге "Язык программирования Си. Издание 3-е, исправленное", комментарии и мнения людей о произведении.