Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по информатике.doc
Скачиваний:
24
Добавлен:
02.05.2014
Размер:
911.87 Кб
Скачать

Программа не инициализирует элементы values[3] и values[4]. В зависимости от вашего компилятора, эти элементы могут содержать значение 0.

Если вы не указываете размер массива, который вы инициализируете при объявлении, C++ распределит достаточно памяти, чтобы вместить все определяемые элементы. Например, следующее объявление создает массив, способный хранить четыре целочисленных значения:

int numbers[] = { 1, 2, 3, 4 };

Передача массивов в функции

Ваши программы будут передавать массивы в функции точно так же, как и любые другие переменные. Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран.

Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр, например number_of_elements, который содержит количество элементов в массиве:

void some_function(int array[], int number_of_elements);

Следующая программа ARRAYFUN.CPP передает массивы в функцию show_array, которая использует цикл for для вывода значений массивов:

#include <iostream.h>

void show_array (int array [] , int number_of_elements)

{    int i;    for (i = 0; i < number_of_elements; i++) cout << array[i] << ' ';    cout << endl; }

void main(void)

{    int little_numbers[5] ={1,2,3,4,5};    int big_numbers[3] = { 1000, 2000, 3000 };    show_array(little_numbers, 5);    show_array(big_numbers, 3); }

Как видите, программа просто передает массив в функцию по имени, а также указывает параметр, который сообщает функции количество элементов, содержащихся в массиве:

show_array(little_numbers, 5);

Следующая программа GETARRAY.CPP использует функцию get_values, чтобы присвоить три значения массиву numbers:

#include <iostream.h>

void get_values(int array[], int number_of_elements)

{    int i;    for (i = 0; i < number_of_elements; i++)

   {        cout “ "Введите значение " << i << ": ";        cin ” array [i];    } }

void main(void)

{    int numbers[3];    get_values(numbers, 3);    cout << "Значения массива" << endl;    for (int i = 0; i < 3; i++)    cout << numbers [i] << endl; }

Как видите, программа передает массив в функцию по имени. Функция в свою очередь присваивает массиву элементы.

Функция sizeof

Оператор sizeof определяет размер памяти, выделяемый под переменную определенного типа. С его помощью можно также определять объем памяти, выделяемый под массив или какой-либо из его элементов.

#include <iostream.h>

void main()

{

cout<<”\nsizeof(char) =”<<sizeof(char);

cout<<”\nsizeof(short) =”<<sizeof(short); //короткое целое

cout<<”\nsizeof(int) =”<<sizeof(int);

cout<<”\nsizeof(long) =”<<sizeof(long);

cout<<”\nsizeof(float) =”<<sizeof(float);

cout<<”\nsizeof(doble) =”<<sizeof(double); //вещест двойной точности

cout<<”\nsizeof(long double) =”<<sizeof(long double);

cout<<”\n”;

double a[] = {1.35, 6.12, -.6389, 41.4};

int b = sizeof(a);

int с = sizeof(a[0]);

int n=b/c; //размер массива

cout<<”Total memory = ”<<b;

cout<<”\nMemory to first arrays member =”<<c;

cout<<”\nArray’s size =”<<n;

}

Результат:

sizeof(char) = 1

sizeof(short) = 2

sizeof(int) = 4

sizeof(long) = 4

sizeof(float) = 4

sizeof(doble) = 8

sizeof(long double) = 8

Total memory = 32

Memory to first arrays member = 8

Array’s size = 4