Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2011, 19:41   #1
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию Что означает int (*a)[N]; ?

до этого не где такого не видел мб кто объяснит сабж?
ololo-schoolboy вне форума Ответить с цитированием
Старый 05.03.2011, 19:49   #2
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Как насчет массива указателей на инты?
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 05.03.2011, 19:55   #3
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

нет, это не массив указателей, т.к. если написать a[0]=new int(); он говорит: "невозможно преобразовать 'int *' в 'int [15]'"

Видно скобки тут не с проста, скорее всего это завязано с приоритетом операций вопрос как
ololo-schoolboy вне форума Ответить с цитированием
Старый 05.03.2011, 20:04   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Это один из способов, что бы показать, что в функцию мы передаем двумерный массив. Например:
Код:
void f(int (*a)[2])
{
    for(int i = 0; i < 2; i++)
    {
        for(int j = 0; j < 2; j++)
            cout << a[i][j] << " ";

        cout << '\n';
    }
}

int main()
{
    int a[2][2];
    int k = 0;

    for(int i = 0; i < 2; i++)
        for(int j = 0; j < 2; j++)
            a[i][j] = ++k;

    f(a);


    return 0;
}

Последний раз редактировалось profi; 05.03.2011 в 22:18.
profi вне форума Ответить с цитированием
Старый 05.03.2011, 21:59   #5
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

те получается это указатель не на двумерный массив int, а на одномерный массив int[2]?
ololo-schoolboy вне форума Ответить с цитированием
Старый 05.03.2011, 22:02   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

ololo-schoolboy я же написал уже на что это указатель . Просто форма записи такая.

Последний раз редактировалось profi; 05.03.2011 в 22:10.
profi вне форума Ответить с цитированием
Старый 05.03.2011, 22:09   #7
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Спасибо разобрался
ololo-schoolboy вне форума Ответить с цитированием
Старый 05.03.2011, 22:17   #8
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
void f(int a[][2]){...}
можешь так написать. Более понятно.
profi вне форума Ответить с цитированием
Старый 05.03.2011, 23:05   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2profi
Цитата:
Это один из способов, что бы показать, что в функцию мы передаем двумерный массив. Например:
совсем не обязательно. это просто указатель на статический массив.
Код:
	int a[2] = { 1, 2 };
	int (*pa)[2] = &a;
	printf("%d %d\n", (*pa)[0], (*pa)[1]);
а судя твоей аксиоматике можно сказать, что int *a - один из способов показать, что в функцию мы передаем массив ты безусловно прав, но это всего лишь частный случай, подмножество
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 06.03.2011, 00:18   #10
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

int *a[3]; // массив указателей
int (*b)[3]; // указатель на массив
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает serg268 C++ Builder 2 04.03.2011 20:44
Что означает int?, long? и т.п. ??? newbprofi Общие вопросы .NET 1 02.09.2010 02:17
Что означает знак ^ RIO Общие вопросы C/C++ 2 20.06.2010 18:21
Что означает конструкция... Alex Cones Общие вопросы Delphi 7 13.12.2009 16:06
Что означает? F_A_N_Alex Помощь студентам 1 07.10.2009 22:50