Указатели
Указатели – это переменные, которые содержат в качестве своих значений адреса памяти. Их используют чаще всего при работе с динамической памятью – областью свободной памяти, в которой можно во время выполнения программы выделять место в соответствии с потребностями. Доступ к выделенным участкам динамической памяти, называемым динамическими переменными, производится только через указатели. В общем случае переменная типа указатель объявляется следующим образом: тип *переменная_указатель; Список переменных, используемых в программе:
Результат работы программы:
Вывод: В ходе выполнения лабораторной работы были изучены особенности представления и средства обработки одномерных массивов в языках C/C++ с учетом связи указателей и массивов: 1) Используя имя массива и индекс, можно обращаться к элементам массива: имя_массива [индекс]. Все элементы массива индексируются, начиная с нуля и заканчивая величиной, на елиницу меньшей, чем размер массива, указанный при его описании. 2) Указатели должны инициализироваться либо при своем объявлении, либо с помощью оператора присваивания. Листинг программы обработки одномерных массивов:
#include <conio.h> // подключение библиотеки управления вводом-выводом // средствами консоли MSDOS #include <iostream.h> // подключение библиотеки стандартных объектов и // операций с потоками ввода-вывода
main()
{ int n; // количество элементов в исходном массиве int *a; // указатель на массив int i; // индекс массива int z=0; // сумма отрицательных членов последовательности int k=1; // произведение членов последовательности
clrscr ();
// формирование массива cout<<"Введите количество элементов массива: ", cin>>n; a=new int[n];
cout<<" Введите "<<n<<" элемента(ов) массива: "; for(i=0;i<n;i++) cin>>a[i];
cout<<" Исходный массив: "<<endl; for(i=0;i<n;i++) cout<<"a["<<i<<"]="<<a[i]<<" "; cout<<endl;
// выполнение 1 задания for(i=0;i<=n-1;i++) if(a[i]<0) z=z+a[i]; cout<<endl<<" сумма: "<<z;
// выполнение 2 задания for(i=0;i<=n-1;i++) if((a[i]>-1)&&(a[i]<3)) k=k*a[i]; cout<<endl<<" произведение: "<<k;
cout<<" Нажмите любую клавишу..."; getch();
delete []a; // освобождение памяти
return 0; }
|