Четверг, 28.11.2024, 19:35
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1313
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Одномерные массивы в СИ


 Массив – некие упорядоченные данные одного типа. Смысл этой всей упорядоченности состоит в том что доступ к элементам происходит через индекс, т.е через порядковый номер элемента тип_массива имя_массива[размер №1][размер №2]...[размер №N];
 Примеры объявления одномерного массива:
  int a[2];
  double b[20];

 Обращение к конкретному элементу одномерного массива в языке СИ осуществляется так: указываем имя массива, а потом в квадратных скобках индекс элемента в этом массиве. в СИ отсчет ведется начиная с нуля, т.е обращение к первому элементу массива будет иметь вид: a[0], а ко второму – a[1] и тд.
На практике наиболее часто используются только:
одномерные массивы (по другому говоря векторы);
двумерные массивы (или же что тоже самое матрицы).

 Объявление одномерного массива в си (далее просто массив) имеет следующий синтаксис:
тип_данных имя_массива[размер];

 Размер массива - любое положительное, целое число. В стандарте С89 значение должно было указываться сразу при написании кода, т.е быть константой. В стандарте С99 было введено понятие так называемого динамического массива.
 Динамический массив - массив, при создании которого в качестве размера указывается значение некоторого выражения, в которое входят переменные, объявленные и инициализированные ранее (выражение должно иметь положительный целочисленный результат).
 Например:
  int n;
  printf("Введите размер массива: ”);
  scanf("%d”,&n);
  double x[n];

 При объявлении статических массивов допускается производить инициализацию элементов массива. Синтаксис такого объявления:
 тип_массива имя_массива[размер] = {значение №1, ... значение №N};

 Примеры:
  int a[5] = {1,2,3,4,5}, b[5] = {1,2};
  double x[10] = {0.0};
  int c[] = {1,2,3,4,5};
  char d[] = {’a’,’b’,’c’};
  int e[5] = {1,2,,4,5}; //Неправильно - ошибка
 Объявление константных одномерных массивов (значения их элементов изменить нельзя) начинается с ключевого слова const, за которым следует объявление массива с инициализацией.
 Примеры:
  const int array[] = {1,2,3,4,5};
  const double vector[5] = {1.0,2.0,3.0};

 Каждый отдельный элемент массива может рассматриваться как простая переменная и, соответственно, выступать в выражениях в качестве RValue или LValue значений.
 Ввод и вывод одномерных массивов в языке СИ осуществляется поэлементно в цикле. Например, ввод и вывод целочисленного массива из десяти элементов будет иметь вид:
  int a[10];
  for(int i=0; i<10; i++) scanf("%d”, &a[i]);
  ...
  for(int i=0; i<10; i++) printf("%d\t”, a[i]);

 Присвоение массива массиву также осуществляется поэлементно. Например, необходимо присвоить одномерный
вещественный массив x одномерному вещественному массиву y. Фрагмент программы:
  double x[15], y[15];
  ...
  for(int i=0; i<15; i++) y[i] = x[i];
  ...

 В СИ во время выполнения программы не производится контроль за допустимыми значениями индексов элементов.Поэтому, если индекс элемента выходит за рамки массива, то в программе возможно появление ошибок. Ошибки могут быть:
  простыми (например «случайное» изменение переменных);
  критическими (выход за пределы пространства памяти, отведенной для программы).
 Например:
  int a[10];
  for(int i=0; i<=10; i++) a[i] = i;

Примеры решения задач на массивы в си
 Далее познакомимся с двумерными массивами (матрицами)
Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---