Форум программистов, компьютерный форум CyberForum.ru

Связь массивов и указателей - C++

Восстановить пароль Регистрация
 
Alberto_Timakov
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 183
27.03.2012, 21:46     Связь массивов и указателей #1
Здравствуйте! Помогите разобраться пожалуйста!

Вот когда я определяю одномерный массив

Type mass[n];

Что происходит?

Выделяется память достаточная для хранения n элементов типа Type и присваивается указателю mass?

Если это так, то что тогда происходит при определении многомерного массива?

к примеру

Type mass[n][m];

можете пожалуйста объяснить???

и еще в учебнике есть строки

void f(const int *m)
{...}

/*
Экивалентные определения функции f

void f(int m[], n)
{...}

void f(int m[n], n)
{...}

*/

int main()
{
Type m[n];

...

f(m);
...
}

Вот у меня вопрос, в функцию f из main передается указатель на начало массива m, а чем он принимается в функции f в случае f(int m[],n)
m[] - это же не указатель на int? Если да, то почему, я просто не понимаю...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 21:46     Связь массивов и указателей
Посмотрите здесь:

C++ Связь указателей и одномерных массивов. Динамический одномерный мас-сив
Нотации массивов и указателей C++
Связь массивов и указателей C++
C++ Индексация массивов, арифметика указателей
Сортировка элементов массивов указателей на char C++
C++ Индексация массивов с помощью указателей
C++ Связь массива и указателей
C++ Использование массивов и указателей

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shandr_71
13 / 13 / 1
Регистрация: 05.12.2011
Сообщений: 84
27.03.2012, 22:28     Связь массивов и указателей #2
В первом случае выделяется sizeof(T)*n байт памяти, переменной mass присваивается указатель на первый элемен (mass==&mass[0]).
Во втором случае выделяется sizeof(T)*n*m байт памяти, переменной mass присваивается указатель на первый элемент (mass==mass[0][0]). В памяти он хранится в виде m последовательно записанных массивов из n элементов.
int m[] - это указатель на массив (при размерности массива 1 его длина не имеет значения, при размерности, например, 3 можно было бы написать так: int m[][n][m], или, что тоже самое: int *m).
Yandex
Объявления
27.03.2012, 22:28     Связь массивов и указателей
Ответ Создать тему
Опции темы

Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru