|
int i, **Arr;
printf("Введите количество строк и столбцов:");
scanf("%d%d",&nRow,&nCol); //Обратите внимание на необходимость &
Arr= new int *[nRow];
for(i=0;i<nRow;i++)
Arr[i]=new int[nCol];
...
for(i=0;i<nRow;i++)
delete[] Arr[i];
delete[] Arr;
Про операции new и delete в дальнейшем будет более подробный разговор.
Функции
Функция - это поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо.
Определения функций
Каждая вызываемая в программе функция должна быть где-то в ней определена, причем, только один раз. Определение функции - это ее описание плюс тело функции. Например:
int sum(int, int); // описание (прототип)
Void main(void)
{
/* … */
y=sum(m,n);
/* … */
}
int sum(int p, int q) // определение
{
return p+q;
}
Если бы определение функции было бы расположено в самом начале, то оно выполняло бы и роль описания.
Описания функций (прототипы функций)
При обработке обращений к функции компилятор должен иметь в памяти
Образец обращения к ней (тип возвращаемого значения, название, количество параметров, их тип). Если такого образца нет, например, в случае расположения
Определения в конце программы, то для его создания компилятором, программист в начале программы должен вставить описание этой функции (прототип).
Описание функции содержит ее имя, тип возвращаемого значения, число и типы параметров, которые должны задаваться при вызове функции. Например:
Double sqrt(double);
extern elem* next_elem();
char* strcpy(char* to, const char* from);
Extern void exit(int);
Слово extern сообщает компилятору, что определение функции находится в другом файле и связь с нею будет установлена на этапе компоновки. Но об этом более подробно будет рассказано позднее.
На основе созданного прототипа функции компилятор проверяет правильность обращения к ней и, если нужно, осуществляет неявные преобразования типов фактических параметров. В описании прототипа функции можно указывать имена параметров. Это облегчает чтение программы, но транслятор эти имена просто игнорирует.
Передача параметров
При вызове функции все параметры, за исключением массивов, передаются по значению. При передаче параметров в стеке создается их локальная копия, что
Приводит к увеличению объема используемой памяти. При выходе из функции эта
Память освобождается. Этот процесс передачи параметров отнимает часть времени
Счета. При вызове функции сверяются типы формальных и соответствующих им типы фактических параметров, и, если необходимо, осуществляются преобразования типов. При передаче параметров они загружаются в стек в порядке обратном их
Дата добавления: 2015-07-07; просмотров: 94 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Связь указателей и массивов | | | Основные типы триггеров |