На главную страницу
Форум txt.version   



Статья :: Язык программирования Си. Издание 3-е, исправленное The C programming Language. Second Edition : Брайан Керниган

Книга широко известных авторов, разработчиков языка Си, переработанная и дополненная с учетом стандарта ANSI для языка Си, 2-е английское издание которой вышло в 1988 году, давно стала классикой для всех изучающих и/или использующих как Си, так и Си++. Русский перевод этой книги впервые был выпущен изд- вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неизменным спросом читателей.

Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания, размещенные автором на странице http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html.

Для программистов, преподавателей и студентов.

Издание подготовлено при участии издательства "Финансы и статистика"

Предисловие

С момента публикации в 1978 г. книги "Язык программирования Си" в мире компьютеров произошла революция. Большие машины стали еще больше, а возможности персональных ЭВМ теперь сопоставимы с возможностями больших машин десятилетней давности. Язык Си за это время также изменился, хотя и не очень сильно; что же касается сферы применения Си, то она далеко вышла за рамки его начального назначения как инструментального языка операционной системы UNIX.

Рост популярности Си, накапливающиеся с годами изменения, создание компиляторов коллективами разработчиков, ранее не причастных к проектированию языка, - все это послужило стимулом к более точному и отвечающему времени определению языка по сравнению с первым изданием книги. В 1983 г. Американский институт национальных стандартов (American National Standards Institute - ANSI) учредил комитет, перед которым была поставлена цель выработать "однозначное и машинно-независимое определение языка Си", полностью сохранив при этом его стилистику. Результатом работы этого комитета и явился стандарт ANSI языка Си.

Стандарт формализует средства языка, которые в первом издании были только намечены, но не описаны, такие, например, как присваивание структурам и перечисления. Он вводит новый вид описания функций, позволяющий проводить повсеместную проверку согласованности вызовов функций с их определением; специфицирует стандартную библиотеку с широким набором функций ввода-вывода, управления памятью, манипуляций со строками символов и другими функциями; уточняет семантику, бывшую в первоначальном определении неясной, и явно выделяет то, что остается машинно-зависимым.

Во втором издании книги "Язык программирования Си" представлена версия Си, принятая в качестве стандарта ANSI. Мы решили описать язык заново, отметив при этом те места, в которых он претерпел изменения. В большинство параграфов это не привнесло существенных перемен, самые заметные различия касаются новой формы описания и определения функции. Следует отметить, что современные компиляторы уже обеспечили поддержку значительной части стандарта.

Мы попытались сохранить краткость первого издания. Си - небольшой язык, и чтобы его описать большой книги не требуется. В новом издании улучшено описание наиболее важных средств, таких как указатели, которые занимают центральное место в программировании на Си; доработаны старые примеры, а в некоторые главы добавлены новые. Так, для усиления трактовки сложных объявлений в качестве примеров включены программы перевода объявлений в их словесные описания и обратно. Как и раньше, все примеры были протестированы прямо по текстам, написанным в воспринимаемой машиной форме.

Приложение A - это справочное руководство, но отнюдь не стандарт. В нем мы попытались уложить самое существенное на минимуме страниц. По замыслу это приложение должно легко читаться программистом-пользователем: для разработчиков же компилятора определением языка должен служить сам стандарт. В приложении B приведены возможности стандартной библиотеки. Оно также представляет собой справочник для прикладных программистов, но не для разработчиков компиляторов. Приложение C содержит краткий перечень отличий представленной версии языка Си от его начальной версии.

В предисловии к первому изданию мы говорили о том, что "чем больше работаешь с Си, тем он становится удобнее". Это впечатление осталось и после десяти лет работы с ним. Мы надеемся, что данная книга поможет вам изучить Си и успешно его использовать.

Мы в большом долгу перед друзьями, которые помогали нам в выпуске второго издания книги. Джон Бентли, Дуг Гунн, Дуг Макилрой, Питер Нельсон и Роб Пайк сделали четкие замечания почти по каждой странице первого варианта рукописи. Мы благодарны Алу Ахо, Деннису Аллиссону, Джою Кемпбеллу, Г. Р. Эмлину, Карен Фортганг, Аллену Голубу, Эндрю Хьюму, Дэйву Кристолу, Джону Линдерману, Дэйву Проссеру, Гину Спаффорду и Крису Ван Уику за внимательное прочтение книги. Мы получили полезные советы от Билла Чезвика, Марка Кернигана, Эндрю Коэнига, Робина Лейка, Тома Лондона, Джима Ридза, Кловиза Тондо и Питера Вайнбергера. Дейв Проссер ответил на многочисленные вопросы, касающиеся деталей стандарта ANSI. Мы широко пользовались транслятором с Си++ Бьерна Страуструпа для локальной проверки наших программ, а Дейв Кристол предоставил нам ANSI Си-компилятор для окончательной их проверки. Рич Дрешлер очень помог в наборе книги. Мы искренне благодарим всех.

Брайан В. Керниган, Деннис М. Ритчи

Предисловие к первому изданию

Си - это универсальный язык программирования с компактным способом записи выражений, современными механизмами управления структурами данных и богатым набором операторов. Си не является ни языком "очень высокого уровня", ни "большим" языком, не рассчитан он и на какую-то конкретную область применения. Однако благодаря широким возможностям и универсальности для решения многих задач он удобнее и эффективнее, чем предположительно более мощные языки.

Первоначально Си был создан Деннисом Ритчи как инструмент написания операционной системы UNIX для машины PDP-11 и реализован в рамках этой операционной системы. И операционная система, и Си- компилятор, и, по существу, все прикладные программы системы UNIX (включая и те, которые использовались для подготовки текста этой книги - Имеется в виду оригинал этой книги на английском языке. - Примеч. пер.) написаны на Си. Фирменные Си-компиляторы существуют и на нескольких машинах других типов, среди которых 1ВМ/370, Honeywell 6000 и Interdata 8/32. Си не привязан к конкретной аппаратуре или системе, однако на нем легко писать программы, которые без каких-либо изменений переносятся на другие машины, где осуществляется его поддержка.

Цель нашей книги - помочь читателю научиться программировать на Си. Издание включает введение- учебник, позволяющий новичкам начать программировать как можно скорее, а также главы, посвященные основным свойствам языка, и справочное руководство. В ее основу положены изучение, написание и проработка примеров, а не простое перечисление правил. Почти все наши примеры - это законченные реальные программы, а не разобщенные фрагменты. Все они были оттестированы на машине точно в том виде, как приводятся в книге. Помимо демонстрации эффективного использования языка, там, где это было возможно, мы стремились проиллюстрировать полезные алгоритмы и принципы хорошего стиля написания программ и их разумного проектирования.

Эта книга не является вводным курсом по программированию. Предполагается, что читатель знаком с такими основными понятиями, как "переменная", "присваивание", "цикл", "функция". Тем не менее и новичок сможет изучить язык, хотя для него будет очень полезным общение с более знающими специалистами.

Наш опыт показал, что Си - удобный, выразительный и гибкий язык, пригодный для программирования широкого класса задач. Его легко выучить, и чем больше работаешь с Си, тем он становится удобнее. Мы надеемся, что эта книга поможет вам хорошо его освоить.

Вдумчивая критика и предложения многих друзей и коллег помогали нам написать книгу. В частности, Майк Бианки, Джим Блу, Стью Фелдман, Дуг Макилрой, Билл Рум, Боб Розин и Ларри Рослер со вниманием прочли все многочисленные варианты этой книги. Мы в долгу у Ала Ахо, Стива Бьерна, Дана Дворака, Чака Хейли, Мариои Харрис, Рика Холта, Стива Джонсона, Джона Машея, Боба Митца, Ральфа Мухи, Питера Нельсона, Эллиота Пинсона, Билла Плейджера, Джерри Спивака, Кена Томпсона и Питера Вайнбергера за полезные советы, полученные от них на различных стадиях подготовки рукописи, а также у Майка Леска и Джо Оссанны за помощь при подготовке ее к изданию.

Брайан В. Керниган, Деннис М. Ритчи




Язык программирования Си. Издание 3-е, исправленное The C programming Language. Second Edition : Брайан Керниган

страницы в данном разделе 
Язык программирования Си. Издание 3-е, исправленное The C programming Language. Second Edition : Брайан Керниган продолжение 1
Предисловие к первому изданию : Брайан Керниган Введение : Брайан Керниган
Глава 1. Обзор языка : Брайан Керниган 1.1 Начнем, пожалуй : Брайан Керниган
1.2 Переменные и арифметические выражения : Брайан Керниган 1.3 Инструкция for : Брайан Керниган
1.4 Именованные константы : Брайан Керниган 1.5 Ввод-вывод символов : Брайан Керниган
1.5.1 Копирование файла : Брайан Керниган 1.5.2 Подсчет символов : Брайан Керниган
1.5.3 Подсчет строк : Брайан Керниган 1.5.4 Подсчет слов : Брайан Керниган
1.6 Массивы : Брайан Керниган 1.7 Функции : Брайан Керниган
1.8 Аргументы. Вызов по значению : Брайан Керниган 1.9 Символьные массивы : Брайан Керниган
1.10 Внешние переменные и область видимости : Брайан Керниган продолжение 19
1.1 Начнем, пожалуй : Брайан Керниган 1.2 Переменные и арифметические выражения : Брайан Керниган
1.3 Инструкция for : Брайан Керниган 1.4 Именованные константы : Брайан Керниган
1.5.1 Копирование файла : Брайан Керниган 1.5.2 Подсчет символов : Брайан Керниган
1.5.3 Подсчет строк : Брайан Керниган 1.5.4 Подсчет слов : Брайан Керниган
1.5.1 Копирование файла : Брайан Керниган 1.5.2 Подсчет символов : Брайан Керниган
1.5.3 Подсчет строк : Брайан Керниган 1.5.4 Подсчет слов : Брайан Керниган
1.6 Массивы : Брайан Керниган 1.7 Функции : Брайан Керниган
1.8 Аргументы. Вызов по значению : Брайан Керниган 1.9 Символьные массивы : Брайан Керниган
1.10 Внешние переменные и область видимости : Брайан Керниган 2.2 Типы и размеры данных : Брайан Керниган
2.3 Константы : Брайан Керниган 2.4 Объявления : Брайан Керниган
2.6 Операторы отношения и логические операторы : Брайан Керниган 2.7 Преобразования типов : Брайан Керниган
2.8 Операторы инкремента и декремента : Брайан Керниган 2.9 Побитовые операторы : Брайан Керниган
2.10 Операторы и выражения присваивания : Брайан Керниган 2.11 Условные выражения : Брайан Керниган
2.12 Приоритет и очередность вычислений : Брайан Керниган 2.2 Типы и размеры данных : Брайан Керниган
2.3 Константы : Брайан Керниган 2.4 Объявления : Брайан Керниган
2.6 Операторы отношения и логические операторы : Брайан Керниган 2.7 Преобразования типов : Брайан Керниган
2.8 Операторы инкремента и декремента : Брайан Керниган 2.9 Побитовые операторы : Брайан Керниган
2.10 Операторы и выражения присваивания : Брайан Керниган 2.11 Условные выражения : Брайан Керниган
2.12 Приоритет и очередность вычислений : Брайан Керниган 3.2 Конструкция if-else : Брайан Керниган
3.3 Конструкция else-if : Брайан Керниган 3.4 Переключатель switch : Брайан Керниган
3.5 Циклы while и for : Брайан Керниган 3.6 Цикл do-while : Брайан Керниган
3.7 Инструкции break и continue : Брайан Керниган 3.8 Инструкция goto и метки : Брайан Керниган
3.2 Конструкция if-else : Брайан Керниган 3.3 Конструкция else-if : Брайан Керниган
3.4 Переключатель switch : Брайан Керниган 3.5 Циклы while и for : Брайан Керниган
3.6 Цикл do-while : Брайан Керниган 3.7 Инструкции break и continue : Брайан Керниган
3.8 Инструкция goto и метки : Брайан Керниган Глава 4. Функции и структура программы : Брайан Керниган
4.1 Основные сведения о функциях : Брайан Керниган 4.2 Функции, возвращающие нецелые значения : Брайан Керниган
4.3 Внешние переменные : Брайан Керниган 4.4 Области видимости : Брайан Керниган
4.5 Заголовочные файлы : Брайан Керниган 4.6 Статические переменные : Брайан Керниган
4.9 Инициализация : Брайан Керниган 4.10 Рекурсия : Брайан Керниган
4.11 Препроцессор языка Си : Брайан Керниган 4.11.2 Макроподстановка : Брайан Керниган
4.11.3 Условная компиляция : Брайан Керниган продолжение 83
4.1 Основные сведения о функциях : Брайан Керниган 4.2 Функции, возвращающие нецелые значения : Брайан Керниган
4.3 Внешние переменные : Брайан Керниган 4.4 Области видимости : Брайан Керниган
4.5 Заголовочные файлы : Брайан Керниган 4.6 Статические переменные : Брайан Керниган
4.8 Блочная структура : Брайан Керниган 4.9 Инициализация : Брайан Керниган
4.10 Рекурсия : Брайан Керниган 4.11.2 Макроподстановка : Брайан Керниган
4.11.3 Условная компиляция : Брайан Керниган 4.11.2 Макроподстановка : Брайан Керниган
4.11.3 Условная компиляция : Брайан Керниган 5.1 Указатели и адреса : Брайан Керниган
5.2 Указатели и аргументы функций : Брайан Керниган 5.3 Указатели и массивы : Брайан Керниган
5.4 Адресная арифметика : Брайан Керниган 5.5 Символьные указатели функции : Брайан Керниган
5.6 Массивы указателей, указатели на указатели : Брайан Керниган 5.7 Многомерные массивы : Брайан Керниган
5.9 Указатели против многомерных массивов : Брайан Керниган 5.10 Аргументы командной строки : Брайан Керниган
5.11 Указатели на функции : Брайан Керниган 5.12 Сложные объявления : Брайан Керниган
5.1 Указатели и адреса : Брайан Керниган 5.2 Указатели и аргументы функций : Брайан Керниган
5.3 Указатели и массивы : Брайан Керниган 5.4 Адресная арифметика : Брайан Керниган
5.5 Символьные указатели функции : Брайан Керниган 5.6 Массивы указателей, указатели на указатели : Брайан Керниган
5.7 Многомерные массивы : Брайан Керниган 5.9 Указатели против многомерных массивов : Брайан Керниган
5.10 Аргументы командной строки : Брайан Керниган 5.11 Указатели на функции : Брайан Керниган
5.12 Сложные объявления : Брайан Керниган 6.1 Основные сведения о структурах : Брайан Керниган
6.2 Структуры и функции : Брайан Керниган 6.3 Массивы структур : Брайан Керниган
6.4 Указатели на структуры : Брайан Керниган 6.5 Структуры со ссылками на себя : Брайан Керниган
6.6 Просмотр таблиц : Брайан Керниган 6.7 Средство typedef : Брайан Керниган
6.8 Объединения : Брайан Керниган 6.9 Битовые поля : Брайан Керниган
6.1 Основные сведения о структурах : Брайан Керниган 6.2 Структуры и функции : Брайан Керниган
6.3 Массивы структур : Брайан Керниган 6.4 Указатели на структуры : Брайан Керниган
6.5 Структуры со ссылками на себя : Брайан Керниган 6.6 Просмотр таблиц : Брайан Керниган
6.7 Средство typedef : Брайан Керниган 6.8 Объединения : Брайан Керниган
6.9 Битовые поля : Брайан Керниган 7.1 Стандартный ввод-вывод : Брайан Керниган
7.2 Форматный вывод (printf) : Брайан Керниган 7.3 Списки аргументов переменной длины : Брайан Керниган
7.4 Форматный ввод (scanf) : Брайан Керниган 7.5 Доступ к файлам : Брайан Керниган
7.6 Управление ошибками (stderr и exit) : Брайан Керниган 7.7 Ввод-вывод строк : Брайан Керниган
7.8 Другие библиотечные функции : Брайан Керниган 7.8.5 Управление памятью : Брайан Керниган
7.1 Стандартный ввод-вывод : Брайан Керниган 7.2 Форматный вывод (printf) : Брайан Керниган
7.3 Списки аргументов переменной длины : Брайан Керниган 7.4 Форматный ввод (scanf) : Брайан Керниган
7.5 Доступ к файлам : Брайан Керниган 7.6 Управление ошибками (stderr и exit) : Брайан Керниган
7.7 Ввод-вывод строк : Брайан Керниган 7.8.5 Управление памятью : Брайан Керниган
7.8.5 Управление памятью : Брайан Керниган 8.1 Дескрипторы файлов : Брайан Керниган
8.2 Нижний уровень ввода-вывода (read и write) : Брайан Керниган 8.3 Системные вызовы open, creat, close, unlink : Брайан Керниган
8.4 Произвольный доступ (lseek) : Брайан Керниган 8.5 Пример. Реализация функций fopen и getc : Брайан Керниган
8.6 Пример. Печать каталогов : Брайан Керниган 8.7 Пример. Распределитель памяти : Брайан Керниган
8.1 Дескрипторы файлов : Брайан Керниган 8.2 Нижний уровень ввода-вывода (read и write) : Брайан Керниган
8.3 Системные вызовы open, creat, close, unlink : Брайан Керниган 8.4 Произвольный доступ (lseek) : Брайан Керниган
8.5 Пример. Реализация функций fopen и getc : Брайан Керниган 8.6 Пример. Печать каталогов : Брайан Керниган
8.7 Пример. Распределитель памяти : Брайан Керниган A2. Соглашения о лексике : Брайан Керниган
A2.4. Ключевые слова : Брайан Керниган A2.5. Константы  : Брайан Керниган
A2.5.2. Символьные константы : Брайан Керниган A4. Что обозначают идентификаторы : Брайан Керниган
A4.2. Базовые типы : Брайан Керниган A6. Преобразования : Брайан Керниган
А6.5. Арифметические преобразования : Брайан Керниган A6.6. Указатели и целые  : Брайан Керниган
A7. Выражения : Брайан Керниган продолжение 179 : Брайан Керниган
A7.3. Постфиксные выражения : Брайан Керниган A7.3.2. Вызов функции : Брайан Керниган
А7.4. Унарные операторы : Брайан Керниган A7.7. Аддитивные операторы : Брайан Керниган
A7.9. Операторы отношения : Брайан Керниган A7.17. Выражения присваивания : Брайан Керниган
A7.19. Константные выражения : Брайан Керниган A8. Объявления : Брайан Керниган
A8.1. Спецификаторы класса памяти : Брайан Керниган А8.2. Спецификаторы типа : Брайан Керниган
A8.3. Объявления структур и объединений : Брайан Керниган A8.4. Перечисления : Брайан Керниган
A8.6. Что означают объявители : Брайан Керниган А8.6.2. Объявители массивов : Брайан Керниган
А8.6.3. Объявители функций : Брайан Керниган A8.7. Инициализация : Брайан Керниган
A9. Инструкции : Брайан Керниган A9.4. Инструкции выбора : Брайан Керниган
A9.5. Циклические инструкции : Брайан Керниган A9.6. Инструкции перехода : Брайан Керниган
А10. Внешние объявления : Брайан Керниган A10.1. Определение функции : Брайан Керниган
A10.2. Внешние объявления : Брайан Керниган A11. Область видимости и связи : Брайан Керниган
A11.1. Лексическая область видимости : Брайан Керниган A12. Препроцессирование : Брайан Керниган
продолжение 206 : Брайан Керниган А12.3. Макроопределение и макрорасширение : Брайан Керниган
A12.5. Условная компиляция : Брайан Керниган A13. Грамматика : Брайан Керниган
A2.4. Ключевые слова : Брайан Керниган A2.5. Константы  : Брайан Керниган
A2.5.2. Символьные константы : Брайан Керниган A2.4. Ключевые слова : Брайан Керниган
A2.5.2. Символьные константы : Брайан Керниган A2.5.2. Символьные константы : Брайан Керниган
A4.2. Базовые типы : Брайан Керниган A4.2. Базовые типы : Брайан Керниган
А6.5. Арифметические преобразования : Брайан Керниган A6.6. Указатели и целые  : Брайан Керниган
А6.5. Арифметические преобразования : Брайан Керниган A6.6. Указатели и целые  : Брайан Керниган
A7. Выражения : Брайан Керниган A7.3. Постфиксные выражения : Брайан Керниган
A7.3.2. Вызов функции : Брайан Керниган А7.4. Унарные операторы : Брайан Керниган
A7.7. Аддитивные операторы : Брайан Керниган A7.9. Операторы отношения : Брайан Керниган
A7.17. Выражения присваивания : Брайан Керниган A7.19. Константные выражения : Брайан Керниган
продолжение 230 A7.3.2. Вызов функции : Брайан Керниган
A7.3.2. Вызов функции : Брайан Керниган A7.7. Аддитивные операторы : Брайан Керниган
A7.9. Операторы отношения : Брайан Керниган A7.17. Выражения присваивания : Брайан Керниган
A7.19. Константные выражения : Брайан Керниган A8.1. Спецификаторы класса памяти : Брайан Керниган
А8.2. Спецификаторы типа : Брайан Керниган A8.3. Объявления структур и объединений : Брайан Керниган
A8.4. Перечисления : Брайан Керниган A8.6. Что означают объявители : Брайан Керниган
А8.6.2. Объявители массивов : Брайан Керниган А8.6.3. Объявители функций : Брайан Керниган
A8.7. Инициализация : Брайан Керниган A8.1. Спецификаторы класса памяти : Брайан Керниган
А8.2. Спецификаторы типа : Брайан Керниган A8.3. Объявления структур и объединений : Брайан Керниган
A8.4. Перечисления : Брайан Керниган А8.6.2. Объявители массивов : Брайан Керниган
А8.6.3. Объявители функций : Брайан Керниган А8.6.2. Объявители массивов : Брайан Керниган
А8.6.3. Объявители функций : Брайан Керниган A8.7. Инициализация : Брайан Керниган
A9.4. Инструкции выбора : Брайан Керниган A9.5. Циклические инструкции : Брайан Керниган
A9.6. Инструкции перехода : Брайан Керниган A9.4. Инструкции выбора : Брайан Керниган
A9.5. Циклические инструкции : Брайан Керниган A9.6. Инструкции перехода : Брайан Керниган
A10.1. Определение функции : Брайан Керниган A10.2. Внешние объявления : Брайан Керниган
A10.1. Определение функции : Брайан Керниган A10.2. Внешние объявления : Брайан Керниган
A11.1. Лексическая область видимости : Брайан Керниган A11.1. Лексическая область видимости : Брайан Керниган
A12. Препроцессирование : Брайан Керниган А12.3. Макроопределение и макрорасширение : Брайан Керниган
A12.5. Условная компиляция : Брайан Керниган продолжение 269
А12.3. Макроопределение и макрорасширение : Брайан Керниган A12.5. Условная компиляция : Брайан Керниган
A13. Грамматика : Брайан Керниган Приложение B. Стандартная библиотека : Брайан Керниган
B1. Ввод-вывод: ‹stdio.h›  : Брайан Керниган B1.1. Операции над файлами : Брайан Керниган
B1.2. Форматный вывод : Брайан Керниган B1.3. Форматный ввод : Брайан Керниган
B1.4. Функции ввода-вывода символов : Брайан Керниган B2. Проверки класса символа: ‹ctype.h› : Брайан Керниган
B3. Функции, оперирующие со строками: : Брайан Керниган B4. Математические функции: : Брайан Керниган
B5. Функции общего назначения: : Брайан Керниган B9. Сигналы: : Брайан Керниган
B10. Функции даты и времени: ‹time.h› : Брайан Керниган B11. Зависящие от реализации пределы: и : Брайан Керниган
продолжение 286 B1.1. Операции над файлами : Брайан Керниган
B1.2. Форматный вывод : Брайан Керниган B1.3. Форматный ввод : Брайан Керниган
B1.4. Функции ввода-вывода символов : Брайан Керниган B1.1. Операции над файлами : Брайан Керниган
B1.2. Форматный вывод : Брайан Керниган B1.3. Форматный ввод : Брайан Керниган
B1.4. Функции ввода-вывода символов : Брайан Керниган B2. Проверки класса символа: ‹ctype.h› : Брайан Керниган
B3. Функции, оперирующие со строками: : Брайан Керниган B4. Математические функции: : Брайан Керниган
B5. Функции общего назначения: : Брайан Керниган B9. Сигналы: : Брайан Керниган
B10. Функции даты и времени: ‹time.h› : Брайан Керниган B11. Зависящие от реализации пределы: и : Брайан Керниган
Приложение C. Перечень изменений : Брайан Керниган Предметный указатель : Брайан Керниган

Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)


Microsoft Office Журнал Компьютерра № 32 от 5 сентября 2006 года Журнал Компьютерра № 34 от 18 сентября 2006 года