return 0;
}
Результат:
31
54
77
52
93
Тот же результат получим, если при выводе значений на экран в цикле будет записан оператор:
cout << *ptrint++ << endl;
или:
cout << *(ptrint +j) << endl;
А теперь в этом же примере в операторе вывода расставим скобки по-другому:
#include <iostream.h>
int main()
{
int intarray[] = { 31, 54, 77, 52, 93 };
int* ptrint;
ptrint = intarray;
for(int j=0; j<5; j++)
cout << (*ptrint)++ << endl; //вывод измененного значения первого элемента
return 0;
}
Результат будет иным:
31
32
33
34
35
Проанализируйте следующий фрагмент программы и обратите внимание на операторы, отмеченные комментарием
#include <iostream.h>
#include <stdlib.h>
main(){
typedef int ar5_i [5]; //устанавливаем название типа для массива из 5-и элементов int
ar5_i a ={1, 2, 3, 4, 5}; //определяем и инициализируем переменную а типа // «массив из 5-и int»
cout << a << endl; // адрес «массива из 5-и int»
int *p_i; // «указатель на int»
ar5_i *p_ar5_i; //«указатель на «массив из 5-и int»
p_i=a;
cout << p_i << endl; // да!!! «указатель на int» = адрес «массива из 5-и int»
cout << *p_i << endl; // 1
// p_i=&a; //нет!!! «указатель на int» = указатель на «массив из 5-и int»
p_ar5_i=&a; // да !!! «указатель на массив из 5 int» =адрес «массива из 5 int»
// p_ar5_i=a; // нет !!! «указатель на массив из 5 int» =«массив из 5 int»
cout << *p_ar5_i << endl; // адрес а – «массива из 5 int»
cout << **p_ar5_i << endl; // 1
// p_ar5_i=&p_i; // нет !!! «указатель на массив из 5 int» = //указатель на «указатель на int»
return 0;
}
Передача одномерного массива в функцию в качестве параметра:
Способы передачи одномерного массива в качестве параметра функции на примере вычисления суммы элементов массива.
#include <iostream.h> //способ 1
#include <conio.h>
int adder (int [ ]); //прототип функции
const int n=7; //размерность массива – глобальная константа, видима везде
int main()
{
static int iarray[n] ={5, 1, 6, 20, 15, 0, 12}; //определение и инициализация массива
int isum;
isum= adder(iarray); //вызов функцииadder, ей передается адрес массива
cout << "isum=" << isum << endl;
getch();
return 0;
}
int adder (int iarray[ ]) //определение функции
{ int i, ipartial=0;
for (i=0; i<n; i++) //n – глобальная константа, видима здесь
ipartial +=iarray[i]; //накопление суммы элементов в переменнойipartial
return (ipartial); // сумма в качестве возвращаемого значения
}
В рассмотренном примере размер обработки фиксирован, однако количество обрабатываемых элементов можно передавать дополнительным параметром:
#include <iostream.h> //способ 2
#include <conio.h>
int adder (int [ ], int); //прототип функции, появился второй параметр
const int n=7; //размер массива – глобальная константа, видима везде
int main()
{ int isum;
static int iarray[n] = {5, 1, 6, 20, 15, 0, 12}; //описание и инициализация массива
isum= adder(iarray, 3); //вызов функции, ей передается адрес массива и //количество элементов для обработки
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.