Автоматические:
описываются в функциях (без static);
распределяются в памяти на этапе выполнения (при каждом вызове подпрограммы) и освобождают память при завершении работы программы;
место в памяти – стек функций;
доступны в блоке функции.
Динамические:
описываются не данные, а их адреса (указатели);
распределяются и уничтожаются в памяти на этапе выполнения программы по специальным командам;
место в памяти – динамическая память (англ. куча – heap);
время жизни и область действия указателей определяется как для обычных (статических или автоматических) данных.
начало
Цепочки, списки
Основные операции для работы с указателями:
* - взятие содержимого по адресу (*i - содержимое переменной с адресом i)
& - взятие адреса (&a - адрес переменной а).
Описание имеет вид:
тип *имя_указателя;
При описании указателя задается тип значения, на которое он указывает.
Примеры описаний: int *i, j, *pointj;
int v1, *pointv1=&v1, *p=(int*)200;
Связь массивов с указателями в Си
#include #include
#include
#include
void main()
{ int *a, n, i;
cout<<"Input the number of elements\n";
cin>>n;
a=(int*)malloc(n*sizeof(int));
//распред-ие памяти под динамический массив
cout<<"Input elements\n";
for (i=0;i
for (i=0;i
cout<<"Squares of elements:\n";
for (i=0;i
free(a);
}
#include
void main()
{int *a, n, i;
cout<<"Input the number of elements\n";
cin>>n;
a=new int[n];
//распред-ие памяти под динамич. массив
cout<<"Input elements\n";
for (i=0;i
for (i=0;i
cout<<"Squares of elements:\n";
for (i=0;i
delete [] (a);
}
#include можно сделать строки матрицы разной длины - ввод m в цикле
#include
void main()
{ int **a, n,m, i,j;
cout<<"Input n,m\n";
cin>>n>>m;
a=new int*[n];
cout<<"Input matrix\n";
for (i=0;i
for (j=0;j
}
for (i=0;i
cout<<"The changed matrix:\n";
for (i=0;i
}
delete [] a;
_getch();
}
float sum(float **a, int n, int m)
{
float s; int i,j;
s=0;
for (i=0;i
return (s);
}
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть