КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Используемые символы
Элементы Языка СИ Брайэн Керниган Инициализация массивов Массивы объектов уже рассматривались в гл. 3. Для инициализации массива любого типа используется стандартный синтаксис, унаследованный из языка С. int Table [5] = {1, 2, 3, 4, 5};На этот синтаксис налагается следующее ограничение. При инициализации массива объектов можно присвоить единственное значение каждому из его элементов и нельзя передать в конструктор группу значений. Однако конструкторы копирования и преобразования позволяют инициализировать объекты, используя единственный аргумент, следовательно, бывают полезны при инициализации массивов объектов. В качестве примера рассмотрим инициализацию массива объектов класса CCurrency различными способами. CCurrency Money (95, 34);CCurrency MoneyTable [5] = { Money, CCurrency (15, 94), 10L, 12.23, };Первый элемент (MoneyTable [ 0 ]) инициализируется существующим объектом класса CCurrency с помощью конструктора копирования; второй – инициализируется конструктором, создающим временный объект класса CCurrency (затем данный объект используется для инициализации элемента массива также конструктором копирования); третий – инициализируется константой типа long с помощью конструктора преобразования с параметром типа long; четверили – константой типа double с помощью другого конструктора преобразования. Последний элемент массива инициализируется неявно; следовательно, для него компилятор вызывает конструктор по умолчанию. Как упоминалось в гл. 2, нельзя явно инициализировать массив объектов, созданных динамически с помощью оператора new. Вместо этого компилятор вызывает конструктор по умолчанию для каждого элемента.
Множество символов используемых в языке СИ можно разделить на пять групп. 1. Символы, используемые для образования ключевых слов и идентификаторов (табл.1). В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды. Таблица 1
2. Группа прописных и строчных букв русского алфавита и арабские цифры (табл.2). Таблица 2
3. Знаки нумерации и специальные символы (табл. 3). Эти символы используются с одной стороны для организации процесса вычислений, а с другой – для передачи компилятору определенного набора инструкций. Таблица 3
4. Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов). 5. Кроме выделенных групп символов в языке СИ широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр (табл.4). Таблица 4
Последовательности вида \ddd и \xddd (здесь d обозначает цифру) позволяет представить символ из набора кодов ПЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например, символ возврата каретки может быть представлен различными способами: \r – общая управляющая последовательность, \015 – восьмеричная управляющая последовательность, \x00D – шестнадцатеричная управляющая последовательность. Следует отметить, что в строковых константах всегда обязательно задавать все три цифры в управляющей последовательности. Например, отдельную управляющую последовательность \n (переход на новую строку) можно представить как \010 или \xA, но в строковых константах необходимо задавать все три цифры, в противном случае символ или символы следующие за управляющей последовательностью будут рассматриваться как ее недостающая часть. Например: "ABCDE\x009FGH" данная строковая команда будет напечатана с использованием определенных функций языка СИ, как два слова ABCDE FGH, разделенные 8-ю пробелами. В этом случае, если указать неполную управляющую строку"ABCDE\x09FGH",то на печати появится ABCDE=|=GH, так как компилятор воспримет последовательность \x09F как символ "=|=". Отметим тот факт, что, если обратная дробная черта предшествует символу, не являющемуся управляющей последовательностью (т.е. не включенному в табл.4) и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный. Например: символ \h представляется символом h в строковой или символьной константе. Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует (\n), то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк.
Дата добавления: 2014-01-07; Просмотров: 392; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |