Хочу получить удостоверение. Сколько стоит оплата? |
Опубликован: 10.12.2015 | Уровень: для всех | Доступ: платный
Лекция 10:
Массивы указателей
< Лекция 9 || Лекция 10 || Лекция 11 >
Ключевые слова: массив
Допускается объединять указатели в массивы. В приводимом ниже примере используется массив указателей на символьные массивы.
//========================================================== // Name : array_pointer.cpp // Author : Marat // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //========================================================== #include <iostream> using namespace std; int main() { char *pointer[]={"Ivanov", "Petrov", "Sidorov"}; int n=sizeof(*pointer)/sizeof(*pointer[0])-1; for(int i=0;i<n;i++) { cout<<"\nWorker ["<<i+1<<"] name is "<<pointer[i]; } cout<<"\n"<<endl; return 0; }
Результат:
Worker [1] name is Ivanov Worker [2] name is Petrov Worker [3] name is Sidorov
Операторы new и delete
Операторы new и delete позволяют выделять и освобождать динамическую память. В этом возникает необходимость при работе с большими массивами, требующими много памяти. В приводимой ниже программе создается указатель на вещественный массив, затем для него высвобождается память, пять его членов инициализируются, а их значения выводятся на печать, почле чего память, зарезервированная под массив, очищается.
//========================================================== // Name : dinamic.cpp // Author : Marat // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //========================================================== #include <iostream> using namespace std; #include<math.h> int main() { double *d; d=new double [100]; for(int i=0;i<5;i++) { d[i]=sqrt(i); cout<<"\nd["<<i+1<<"]= "<<d[i]; } cout<<"\n"<<endl; delete []d; return 0; }
Результат:
d[1]=0 d[2]=1 d[3]=1.41421 d[4]=1.73205 d[5]=2
< Лекция 9 || Лекция 10 || Лекция 11 >