C++ Передача указателей в функции

Указатели в C++

C++ позволяет передавать указатели в функции, просто объявляя параметры функции как типы указателей.

В следующем примере мы передаём указатель на unsigned long в функцию и изменяем это значение внутри функции:

Пример

#include <iostream> #include <ctime> using namespace std; // При написании функций полезно сначала объявить функцию, а затем определить её void getSeconds(unsigned long *par); int main () { unsigned long sec; getSeconds( &sec ); // Вывести фактическое значение cout << "Количество секунд:" << sec << endl; return 0; } void getSeconds(unsigned long *par) { // Получить текущие секунды *par = time( NULL ); return; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Number of seconds :1294450468

Функции, которые могут принимать указатели в качестве параметров, также могут принимать массивы в качестве параметров, как показано ниже:

Пример

#include <iostream> using namespace std; // Объявление функции double getAverage(int *arr, int size); int main () { // Целочисленный массив из 5 элементов int balance[5] = {1000, 2, 3, 17, 50}; double avg; // Передать указатель на массив в качестве аргумента avg = getAverage( balance, 5 ) ; // Вывести возвращаемое значение cout << "Среднее значение: " << avg << endl; return 0; } double getAverage(int *arr, int size) { int i, sum = 0; double avg; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = double(sum) / size; return avg; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

Average value is: 214.4

Указатели в C++

Другие расширения