Изучаем Си [Александр Борисович Крупник] (pdf) читать постранично, страница - 12
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
person *repka, *root
заменяет
struct personage *repka, *root;
и теперь вместо
repka = malloc(sizeof (struct personage *))
можно написать
repka = malloc (sizeof(person *));
Задача 8.9. Перепишите программу, показанную в листинге
8 15, объявляя новые типы с помощью typedef.
Естественно, typedef позволяет создавать и другие новые
типы. Чтобы понять, как это делается, полезно простое
правило: дописывание typedef слева от любого объявления
переменной, возвышает ее до названия нового типа. То есть,
конкретная переменная, имеющая имя и занимающая память,
после приписывания typedef превращается просто в имя
нового типа.
Пусть, например, в программе объявлена переменная типа
int:
int s32;
192
поставив слева typedef:
typedef int s32;
мы уничтожаем переменную s32 и превращаем ее в имя
нового типа, причем переменные нового типа будут такими
же, какой была s32 до приписывания слова typedef. Новым
типом можно пользоваться наравне с базовыми типами:
double, char и т.п:
s32 a=0, i,j;
Теперь a, i , j — простые переменные типа s32. Все они
такие же, какой была s32, то есть типа int.
Возьмем другое объявление:
int arr100[100];,
создающее массив из ста элементов типа int. Приписывание
слева слова typedef уничтожает сам массив arr100[100]
и создает новый тип arr100: массив из ста элементов типа
int. Теперь переменные этого типа можно объявлять и
использовать обычным образом:
typedef int arr100[100];
arr100 a;
int i;
for(i=0;i
Слева направо
< >=
Слева направо
== !=
Слева направо
&
Слева направо
^
Слева направо
|
Слева направо
&&
Слева направо
||
Слева направо
?:
Справа налево
= += -= *= /= %= &= ^= |= =
Справа налево
,
Слева направо
Приоритет унарных операторов +, - и * выше, чем
соответствующих бинарных.
223
Что дальше?
Здесь не делают домашних работ. Мы поможем
предложениями и советами, но сначала вы должны написать
что-то сами. Никто не хочет быть невежливым, но
большинство из нас считают, что делать чью-то домашнюю
работу — жестоко, потому что не дает правильно учиться.
Программированием, как и любым другим ремеслом надо
заниматься. Мы уже умеем делать домашние задания, по
крайней мере, не хуже вас и поэтому в таких занятиях не
нуждаемся.
Из конференции comp.lang.c.moderated
В Предисловии я написал, что хочу видеть свою книгу одной
из первых в длинном списке книг по программированию и
алгоритмам. И раз вы читаете эти строки, мое желание
сбылось. Хочу поздравить терпеливого читателя, который стал
пусть неопытным, пусть начинающим, но программистом.
Перед ним длинная и увлекательная дорога, предсказать все
многочисленные повороты которой невозможно.
Но хотелось бы пожелать, чтобы следующий шаг был связан с
«лучшей второй книгой всех времен и народов по языку Си»
— классической «Язык программирования Си» Брайана
Кернигана и Денниса Ритчи.
Если бы я начинал изучение языка Си сейчас, то лучшей (по
крайней мере, для меня) была бы моя собственная книжка. К
сожалению, мне, как и многим другим, приходилось учиться
по книге Кернигана и Ритчи. И надо честно сказать, что многое
в ней давалось мучительно, а кое-что (рекурсию, например) я
так тогда и не понял. Поэтому в своей книге я постарался
максимально подробно рассказать о самом трудном. Надеюсь,
что теперь чтение K&R (так во всем мире называют книгу
Кернигана и Ритчи) будет для вас не только поучительным, но
также легким и приятным.
Изучение Си, как и любого другого языка программирования,
немыслимо
без
упражнений.
Чтобы
научиться
программировать, нужно программировать. Задачи, которые
224
вы будете решать на первых порах, не должны быть слишком
сложными. Старайтесь начинать с самого главного,
постепенно подключая все новые и новые возможности.
Разбивайте задачу на части, которые можно отладить отдельно
друг от друга. Читайте документацию. Не поддавайтесь
панике. И тогда к вам придет удача.
Литература
1. Б.Керниган, Д. Ритчи «Язык программирования Си».
Москва «Финансы и статистика», 1992
2. Ч.Уэзерелл «Этюды для программистов». М. Мир, 1982
3. Б.Керниган,
Ф.Плоджер
«Элементы
программирования», М. «Радио и связь», 1984
4. Ф.П.Брукс мл. «Как проектируются и
программные комплексы», М. «Наука», 1979
стиля
создаются
5. Ч. Петзолд «Программирование для Windows 95 в двух
томах», BHV, 1996
225
Об авторе
Крупник Александр
Борисович, родился
26 июня 1957 года в
г. Горьком. Окончил
Радиофизический
факультет
Горьковского
государственного
университета, канд.
ф.-мат. наук.
226
Последние комментарии
7 минут 2 секунд назад
1 час 15 минут назад
12 часов 33 минут назад
12 часов 50 минут назад
13 часов 15 минут назад
13 часов 46 минут назад