русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Примеры объявлений массивов


Дата добавления: 2013-12-23; просмотров: 834; Нарушение авторских прав


Строки

Строка представляет собой массив символов, заканчивающийся нуль-символом. Нуль-символ — это символ с кодом, равным 0, что записывается в виде управляющей последовательности '\0'. По положению нуль-символа определяется фактическая длина строки. Строку можно инициализировать строковым литералом:

char str[10] = "Vasia";

В этом примере под строку выделяется 10 байт, 5 из которых занято под символы строки, а шестой — под нуль-символ. Если строка при определении инициализируется, ее размерность можно опускать (компилятор сам выделит соответствующее количество байт):

char str[] = "Vasia"; //Выделено и заполнено 6 байт

Оператор

char *str = "Vasia";

создает не строковую переменную, а указатель на строковую константу.

Операция присваивания одной строки другой не определена и может выполняться с помощью цикла или функций стандартной библиотеки.

Библиотека предоставляет возможности копирования, сравнения, объединения строк, поиска подстроки, определения длины строки и т.д. (возможности библиотеки описаны в разделе «Функции работы со строками и символами»), а также содержит специальные функции ввода строк и отдельных символов с клавиатуры и из файла.

Пример 3
Пример (программа запрашивает пароль не более трех раз). #include <stdio.h>#include <string> int main() { char s[5], passw[] = "kuku"; // passw – эталонный пароль. Можно описать как *passw = "kuku"; int i, k = 0; for (i = 0; !k && i < 3; i++) { printf("\nвведите пароль:\n"); gets(s); // функция ввода строки if (strstr(s, passw)) // функция сравнения строк k = 1; } if (k) printf("\nпароль принят"); else printf("\nпароль не принят"); return 0;}

При работе со строками часто используются указатели.



Пример 4
Рассмотрим процесс копирования строки srcв строку dest. #include <iostream>using namespace std; int main() { char *src = new char [10]; char *dest = new char [10], *d = dest; cin << src; while (*d++ = *src++); cout << dest; return 0;}

1. Массивы в C++

Массив – это совокупность величин, которая обладает следующими свойствами:

· все элементы массива имеют один и тот же тип;

· массив имеет одно имя для всех элементов;

· доступ к конкретному элементу массива осуществляется по индексу (индексам).

Другими словами, массив – это структура однотипных элементов, занимающих непрерывную область памяти.

С массивом связаны следующие его свойства: имя, тип, размерность, размер.

В языке C++ массив может состоять из элементов любого типа, кроме типа void и функций, т.е. элементы массива могут иметь базовый, перечислимый, структурный тип, быть объединением, указателем или массивом.

1.1. Объявление массива

1.1.1. Одномерные (линейные) массивы

Объявление массива имеет следующий синтаксис:

1) <спецификация типа> <имя> [<константное выражение>];

2) <спецификация типа> <имя> [ ];

Квадратные скобки являются элементом синтаксиса, а не признаком необязательности конструкции.

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

В C++ нельзя определять произвольные диапазоны для индексов. Индексация элементов массива в языке C++ начинается с нуля, последний элемент массива имеет индекс на единицу меньше, чем число элементов массива.

Во второй синтаксической форме константное выражение в квадратных скобках опущено. Эта форма может быть использована в следующих случаях:

1) если в объявлении массива присутствует инициализатор;

2) массив объявляется как формальный параметр функции;

3) данное объявление является ссылкой на объявление массива где-то в другом месте программы.

1.1.2. Многомерные массивы

Многомерный (N-мерный) массив, или массив массивов, объявляется путем задания последовательности константных выражений в квадратных скобках, следующей за именем:

<тип> <имя> [<константное выражение_1>] [<константное выражение_2>] ... [<константное выражение_N>];

Каждое константное выражение определяет количество элементов в соответствующем измерении массива.

Для многомерного массива может быть опущена только первая размерность.

int x[10]; // Одномерный массив из 10 целых чисел. // Индексы меняются от 0 до 9.
double y[2][10]; /* Двумерный массив вещественных чисел из 2 строк и 10 столбцов.*/

1.2. Инициализация массивов

Как и простые переменные, массивы могут быть инициализированы при объявлении.

Инициализатор для объектов составных типов (каким является массив) состоит из списка инициализаторов, разделенных запятыми и заключенных в фигурные скобки. Каждый инициализатор в списке представляет собой константу соответствующего типа или список инициализаторов (при инициализации многомерных массивов).

Наличие списка инициализаторов в объявлении массива позволяет не указывать число элементов по его первой размерности. В этом случае количество элементов в списке инициализаторов и определяет число элементов по первой размерности массива. Тем самым определяется размер памяти, необходимой для хранения массива. Число элементов по остальным размерностям массива, кроме первой, указывать обязательно.

Если в списке инициализаторов меньше элементов, чем в массиве, то оставшиеся элементы неявно инициализируются нулевыми значениями.

Если же число инициализаторов больше, чем требуется, то выдается сообщение об ошибке.



<== предыдущая лекция | следующая лекция ==>
Тема № 8. Указатели и массивы в языке С. | Примеры инициализации массивов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.