Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и языки программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
53.75 Кб
Скачать

6.Понятие указателя, объявление указателя. Операции над указателями.

Указатель – это переменная, значением которой является адрес некоторого объекта в памяти компьютера. Подобно тому, как переменная типа char имеет в качестве значения символ, а переменная типа int – целочисленное значение, переменная типа указателя имеет в качестве значения адрес ячейки оперативной памяти. Допустимые значения для переменной-указателя – множество адресов оперативной памяти компьютера. Указатель является одной из наиболее важных концепций языка C. Правильное понимание и использование указателей особенно необходимо для составления хороших программ по следующим причинам:

·     указатели являются средством, при помощи которого функции могут изменять значения передаваемых в нее аргументов;

·     при помощи указателей выполняется динамическое распределение памяти;

·     указатели позволяют повысить эффективность программирования;

·     указатели обеспечивают поддержку динамических структур данных.

Однако указатель может вызвать и ряд затруднений, например, если указатель содержит неправильное значение, программа может быть неработоспособной. Можно легко ошибиться при использовании указателей; к тому же ошибки, связанные с неправильными значениями указателей, найти очень трудно. Итак, указатель – это новый тип данных. Для него определены понятия константы, переменной, массива. Как и любую переменную, указатель необходимо объявить. Объявление указателя состоит из имени базового типа, символа * и имени переменной. Общая форма объявления указателя: тип *имя;

Тип указателя определяет тип объекта, на который указатель будет ссылаться, например,

int *p1;

Фактически указатель любого типа может ссылаться на любое место в памяти, но выполняемые над указателем операции существенно зависят от его типа. Так, если объявлен указатель типа int *, компилятор предполагает, что любой адрес, на который он ссылается, содержит переменную типа int, хотя это может быть и не так. Следовательно, объявляя указатель, необходимо убедиться в том, что его тип совместим с типом объекта, на который он будет ссылаться. Над указателями определено 5 основных операций.

§     Определение адреса указателя: &p, где p – указатель (&p – адрес ячейки, в которой находится указатель).

§     Присваивание. Указателю можно присвоить адрес переменной p=&q, где p – указатель, q – идентификатор переменной.

§     Определение значения, на которое ссылается указатель: *p (операция косвенной адресации).

§     Увеличение (уменьшение) указателя. Увеличение выполняется как с помощью операции сложения (+), так и с помощью операции инкремента (++). Уменьшение – с помощью операции вычитания (–) либо декремента (––).

7. Описание и определение пользовательских функций в языке программирования с

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

Синтаксис:

returnDataType functionName( dataType argName1, dataType argName2, ..., dataType argNameN);

где, returnDataType — возвращаемый тип данных; functionName — имя функции; dataType — тип данных; argName1...N — имена параметров функции (количество параметров неограниченно)

Например:

void func1(int sum, double k)

{double multi;

multi=sum*k;

cout<<multi<<endl;

}

или

double func2(int sum, double k)

{return sum*k;}

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

Вызов функций. После того, как функция была объявлена и определена, её можно использовать, для этого её нужно вызвать. Вызов функции выполняется следующим образом:

funcName( arg1, arg2, ... );

где, funcName — имя функции; arg1..2 — аргументы функции (значения или переменные).

Вызов функции выполняется записью её имени, а затем круглых скобочек (). Если функция принимает аргументы, то в круглых скобках передаются аргументы, в порядке, указанном в объявлении функции.