КАТЕГОРИИ: Архитектура-(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) |
Массивы с неопределенным размером (безразмерные массивы)
Строки В языке C++ не существует особого встроенного типа данных для работы с текстом,. Текст представляется в виде последовательности символов (байтов), заканчивающихся нулевым символом (нуль-символом) '\0', представляющим нулевое числовое значение. Иногда такое представление называют C-строками, поскольку оно появилось в языке C. C-строки представляются в виде одномерного массива символов, например: char str[20]; Для записи строковых констант (литералов) в программе используются последовательности символов, заключенные в двойные кавычки: "This is a string" "0123456789" "*" Строка, как и любой другой массив, может быть инициализирована поэлементно. Например, чтобы записать в str строковое значение "Hello!", можно выполнить соответствующее число присваиваний (не забыв о завершающем нуль-символе), циклически ввести необходимые символы с клавиатуры или использовать список начальных значений. В результате указанных действий в массиве string будет записана строка "Hello!", при этом фактически будет использоваться только 7 из 20 элементов массива. Однако для строк возможна и более короткая форма записи инициализации: char string[20]="Hello!"; вывода текущего значения строки: cout << str; а также ввода новых строковых значений: cin >> str; (последний способ позволяет ввести только однострочное строковое значение, не содержащее пробелов и табуляций). При указании размера массива символов следует помнить, что он должен быть на 1 больше, чем число символов в строке, чтобы предусмотреть место для нуль-символа. В отдельных случаях допускается объявление массива с неопределенным числом элементов (“пустыми” квадратными скобками). Один из таких немногих случаев – при инициализации массива с использованием списка начальных значений. При таком объявлении размер “безразмерного” массива определяется числом элементов в списке: int days[] = { 31, 28, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31}; // Автоматическое определение размера массива Данное объявление объявляет и инициализирует массив days из 12 элементов, то есть с размером 12. Допускается подобное использование “безразмерных” многомерных массивов. При такой, “списковой” инициализации можно не задавать размер только первого (самого левого) измерения массива. Например, объявление массива temp можно переписать так: double temp[][3] = { { 3.2, 3.3, 3.4}, { 4.1, 3.9, 3.9} }; (размерностью массива temp будет 2 на 3). Безразмерные массивы типа char можно инициализировать c помощью строковых констант (литералов): char digits[] = "0123456789"; Размер массива digits явно не задан, он определяется исходя из размера инициализирующего его литерала, в данном случае 11 (10 символов плюс нулевой символ). Данное объявление можно рассматривать как краткую форму записи объявления char digits[] = {'0','1','2','3','4','5','6','7','8','9','\0'};
Дата добавления: 2014-01-11; Просмотров: 910; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |