![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Использование литералов
¨ Являясь строкой, -константой, литерал представляется как массив элементов типа char с символом ‘\0’ в конце, т.е. с ним (литералом) связан указатель-константа на первый элемент. Будучи константой, литерал размещается в памяти компилятором и хранится в сегменте данных загрузочного модуля программы. ¨ Литерал используется: 1) для инициализации массива типа char (см. п. 2.2); адрес первого байта литерала становится синонимом имени массива; 2) для инициализации указателя типа char*; адрес первого символа литерала становится начальным значением указателя; 3) в выражениях, там, где разрешается применять указатель; компилятор подставляет вместо литерала адрес его первого символа. ¨ Работой компилятора с литералами управляет специальная опция Main menu/ Options/ Code Generation/ Merge Duplicated String. По умолчанию опция выключена и для каждого литерала в сегменте данных создается своя строка; если опция включена, то для полностью идентичных литералов программы создается один экземпляр строки, на который может быть несколько ссылок. ¨ Пример char str1 [ ]=”string”; // адрес первого байта литерала - синоним имени массива char *ptr1=”string”; // адрес первого символа литерала - начальное значение ptr1 char str2 [10]; // массив из 10 элементов с неопределенными значениями char *ptr2; // ptr2 никуда не указывает // Операторы ptr2= ptr1; // ptr2 получает значение адреса второго литерала
//значения в массив str2 можно ввести или присвоить
|