Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_СРСП_Программирование РЭС.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.86 Mб
Скачать

8.4 Связь между массивом и указателем

 

Указатели позволяют эффективно организовать работу с массивами. Действительно, обозначение массива представляет собой скрытую форму использования указателей. Например, имя массива определяет также его первый элемент, т.е. если arr[][]– массив, то arr==&arr[0][0].

Пример 8.4

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

int arr [4][2];

int *ref1,*ref2;

using namespace System;

int main(array<System::String ^> ^args)

{

arr[0][0] =11;

arr[0][1] =12;

arr[1][0] =21;

arr[1][1] =22;

arr[2][0] =31;

arr[2][1] =32;

arr[3][0] =41;

arr[3][1] =42;

ref1=(int*)arr;

ref2=(int*)arr;

printf("\n%d \n", arr);

printf("\n%d %d %d %d %d \n", *ref1,ref1,ref2,*ref2,*(arr[0]));

ref1++;

ref2=&arr[0][0]+1;

printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[1]));

ref1++;

ref2=&arr[0][0]+2;

printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[2]));

ref1++;

ref2=&arr[0][0]+3 ;

printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[3]));

ref1++;

ref2=&arr[0][0]+4;

printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[4]));

getch();

return 0;

}

Имя массива является адресом его первого элемента.

Вопросы для самоконтроля:

  1. Как получить адрес переменной?

  2. Как получить значение, ссылаясь на указатель.

  3. Какие операции можно применять для переменных типа указатель?

9 Функции

 Цель работы: приобрести навыки в решении задач с использованием функций.

9.1 Модульное программирование

«Модульность – фундаментальный аспект всех успешно работающих крупных систем» Бьерн Страуструп 

При разработке программы иногда появляются повторяемые группы действий или возникает необходимость разбить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм (модулей).

Подпрограмма (модуль) — это специальным образом оформленный алго­ритм, который может многократно использоваться при реше­нии более общей задачи.

Программирование, основанное на разбиение программы на независимые модули, называется модульным.

9.2 Объявление функции

Разновидностью подпрограмм являются функции.

До настоящего момента нами были использованы системные функции. Например, выполнение программы всегда начинается с команд, содержащихся в функции main(), а затем последняя вызывает другие функции.

Функция – самостоятельная единица программы, представляющая собой группу операторов, выполняющих законченное действие.

К функции можно обратиться по имени, передать ей значение и получить из нее результат.

Формат объявления функции (прототип функции):

тип имя_функции (список_параметров)

тело функции;

Пример 9.1. Объявление функции.

Прототип функции, возвращающей факториал числа n (факториал числа n – это произведение n!=1*2*…*n, см. лабораторную работу 3, задание 5):

int fact(int n);

Задание 9.1.

В примере 9.1 определите имя функции, тип функции и параметра.

Это важно.Функцию следует определять так, чтобы ею можно было воспользоваться как черным ящиком. Имя функции должно быть информативным. Программист не должен нуждаться в доступе к ее телу, для того чтобы узнать, что она делает. Вся необходимая информация должна быть приведена в объявлении функции. Данное правило называется принципом процедурной абстракции.