Курсовая работа: Особливості мови програмування С

cout<<a[i][j];

cout<<endl;

}

}

int b[3][4];

...

print(b);

Подібна функція працює лише для масивів 3 4. Згадуючи, що при передачі у функцію інформація про розмір одновимірного масиву втрачається, ми можемо модифікувати попередній приклад для передачі масивів, що мають змінний перший розмір:

void print(int a[][4], int n)

{

for (int i=0; i<n; i++)

...

}

int b[7][4];

...

print(b);

Відзначимо, що інформація про другий розмір двовимірного масиву не втрачається і, більш того, істотно необхідна для інтерпретації усередині функції запису а[i]: для обчислення значення вираження a+i до вмісту вічка а у внутрішній виставі додається величина i*sizeof(int[4]). Саме з цієї причини жодного способу передавати у функції звичайні масиви із змінною другою розмірністю не існує.

При передачі у функцію динамічного двовимірного масиву подібних проблем не виникає:

void print_dyn(int** а, int n, int m)

{

for (int i=0; i<n; i++)

{

for (int j=0; j<m; j++)

cout<<a[i][j];

cout<<endl;

}

}

int** b=new int*[5];

for (int i=0; i<5; i++)

К-во Просмотров: 774
Бесплатно скачать Курсовая работа: Особливості мови програмування С