ݺߣ

ݺߣShare a Scribd company logo
Программирование на языке C++
Лекция 2
Использование указателей
Александр Смаль
1/6
Два способа передачи массива
Функция для поиска элемента в массиве:
bool contains(int * m, int size , int value) {
for (int i = 0; i != size; ++i)
if (m[i] == value)
return true;
return false;
}
bool contains(int * p, int * q, int value) {
for (; p != q; ++p)
if (*p == value)
return true;
return false;
}
1 2 3 4 5 0 0 0 0 0
p q 2/6
Возрат указателя из функции
Функция для поиска максимума в массиве:
int max_element (int * p, int * q) {
int max = *p;
for (; p != q; ++p)
if (*p > max)
max = *p;
return max;
}
int m[10] = {...};
int max = max_element(m, m + 10);
cout << "Maximum = " << max << endl;
3/6
Возрат указателя из функции
Функция для поиска максимума в массиве:
int * max_element (int * p, int * q) {
int * pmax = p;
for (; p != q; ++p)
if (*p > *pmax)
pmax = p;
return pmax;
}
int m[10] = {...};
int * pmax = max_element(m, m + 10);
cout << "Maximum = " << *pmax << endl;
4/6
Возрат значения через указатель
Функция для поиска максимума в массиве:
bool max_element (int * p, int * q, int * res) {
if (p == q)
return false;
*res = *p;
for (; p != q; ++p)
if (*p > *res)
*res = *p;
return true;
}
int m[10] = {...};
int max = 0;
if (max_element(m, m + 10, &max))
cout << "Maximum = " << max << endl;
5/6
Возрат значения через указатель на указатель
Функция для поиска максимума в массиве:
bool max_element (int * p, int * q, int ** res) {
if (p == q)
return false;
*res = p;
for (; p != q; ++p)
if (*p > **res)
*res = p;
return true;
}
int m[10] = {...};
int * pmax = 0;
if (max_element(m, m + 10, &pmax ))
cout << "Maximum = " << *pmax << endl;
6/6

More Related Content

2.4 Использование указателей

  • 1. Программирование на языке C++ Лекция 2 Использование указателей Александр Смаль 1/6
  • 2. Два способа передачи массива Функция для поиска элемента в массиве: bool contains(int * m, int size , int value) { for (int i = 0; i != size; ++i) if (m[i] == value) return true; return false; } bool contains(int * p, int * q, int value) { for (; p != q; ++p) if (*p == value) return true; return false; } 1 2 3 4 5 0 0 0 0 0 p q 2/6
  • 3. Возрат указателя из функции Функция для поиска максимума в массиве: int max_element (int * p, int * q) { int max = *p; for (; p != q; ++p) if (*p > max) max = *p; return max; } int m[10] = {...}; int max = max_element(m, m + 10); cout << "Maximum = " << max << endl; 3/6
  • 4. Возрат указателя из функции Функция для поиска максимума в массиве: int * max_element (int * p, int * q) { int * pmax = p; for (; p != q; ++p) if (*p > *pmax) pmax = p; return pmax; } int m[10] = {...}; int * pmax = max_element(m, m + 10); cout << "Maximum = " << *pmax << endl; 4/6
  • 5. Возрат значения через указатель Функция для поиска максимума в массиве: bool max_element (int * p, int * q, int * res) { if (p == q) return false; *res = *p; for (; p != q; ++p) if (*p > *res) *res = *p; return true; } int m[10] = {...}; int max = 0; if (max_element(m, m + 10, &max)) cout << "Maximum = " << max << endl; 5/6
  • 6. Возрат значения через указатель на указатель Функция для поиска максимума в массиве: bool max_element (int * p, int * q, int ** res) { if (p == q) return false; *res = p; for (; p != q; ++p) if (*p > **res) *res = p; return true; } int m[10] = {...}; int * pmax = 0; if (max_element(m, m + 10, &pmax )) cout << "Maximum = " << *pmax << endl; 6/6