Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [C++] Массивы  (Прочитано 3983 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jackson
Участник

ua
Offline Offline

« : 28-12-2009 22:22 » 

Как создавать одномерные и двухмерные массивы и как осуществлять переход от одномерных массивов к двухмерным?
« Последнее редактирование: 29-12-2009 06:17 от Sel » Записан
darkelf
Молодой специалист

de
Offline Offline

« Ответ #1 : 29-12-2009 07:15 » 

Код:
#include <stdio.h>

int main(int argc, char* argv[])
{ int a[10]; /*одномерный массив*/
  int b[10][20]; /*двумерный массив*/
  int* p =  &b[0][0]; /*эмуляция двумерного массива с помощью одномерного*/
  int i, j;

  for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    a[i] = i;

  for (i = 0; i < sizeof(b) / sizeof(b[0]); i++)
  { for (j = 0; j < sizeof(b[0]) / sizeof(b[0][0]); j++)
      b[i][j] = i * sizeof(b) / sizeof(b[0]) + j;
  }

  i = 7;
  j = 1;

  printf("%lp b[%d][%d] = %d\n", &b[i][j], i, j, b[i][j]);
  printf("%lp p[%d][%d] = %d\n", (p + i * (sizeof(b[0]) / sizeof(b[0][0])) + j), i, j, *(p + i * (sizeof(b[0]) / sizeof(b[0][0])) + j));

  return 0;
}
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines