Похожие презентации:
Указатели. Статическая память. Динамическая память. Лекция 18
1.
УказателиСтатическая память
Динамическая память
2.
Куча — это хранилище памяти,расположенное в ОЗУ, которое допускает
динамическое выделение памяти (это просто
склад для ваших переменных)
3.
24.
Унарные и бинарныеоперации какие примеры
вы знаете?
5.
2Адрес дома: 00EFF7AC
6.
Унарная операция & - адрес00EFF7AC
7.
Указатель — это переменная,содержащая адрес другой
переменной.
2
8.
pdom&dom
00EFF7AC
dom
2
9.
pdom&dom
00EFF7AC
dom
2
10.
Так как указатель содержит адрес объекта, это даетвозможность «косвенного» доступа к этому объекту через
указатель.
pdom
&dom
00EFF7AC
2
11.
pdom&dom
00EFF7AC
2
12.
Вариант 1&dom
2
Вариант 2
13.
содержимоеАдрес
14.
dom2
МУСОР
00EFF7AC
00EFF7AC+1
мусор
МУСОР
МУСОР
1) Это важно запомнить
15.
dom2
00EFF7AC
МУСОР
-1
00EFF7AC+50
мусор
МУСОР
МУСОР
16.
Присвоим y содержимое того, на чтоуказывает px.
5
int x=5, y=0;
int *px;
px = &x;
y = *px;
Y
*px
17.
int z=100;int *pz;
pz=&z;
18.
int x=5,y=0;int *px=&x;
y = *px + 1;
y=5+1;
y = px + 1;
19.
int x=5;int *px=&x;
*px=0; // Что будет с х???
int x=5;
int *px=&x;
*px+=1; //что будет с х? аналог (*px) + 1;
20.
int x;int *px;
int *py;
px=&x;
py = px;
Копировать адрес
5
*px
*py
21.
22.
1) Создать пять переменных A,B,C,D,E2) Создать указатели на переменные pA pB pC pD pE
3) Изменить содержимое A и B через указатели pA pB
4) Вывести на экран адрес указателя pС и адрес С
5) Вывести на экран содержимое указателя pD
6) Указателю pE присвоить адрес указателя pA. Изменить
содержимое указателя pE и вывести на экран pE, pA, A
23.
1) Создать указатель на number=5.65;2) Поменять содержимое number через указатель
3) Копировать содержимое number через указатель в
переменную X;
24.
Указатели и массивыint a[10];
int *pa;
pa = &a[0]; // pa указывает на нулевой элемент массива a.
x = *pa; // будет копировать содержимое a[0] в x.
x= *(pa+1); // x=a[1];
x=*(pa+5); //x=a[5];
25.
26.
27.
Задача: Создать массивArray[100]. Сделать
указатель на этот массив
*pArray;
И через указатель записать в
массив rand()%5+1;
28.
Когда имя массива передается функции, то на самом деле ей передаетсяместоположение начала этого массива. Внутри вызванной функции такой
аргумент является точно такой же переменной, как и любая другая, так что имя
массива в качестве аргумента действительно является указателем, т.е.
переменной, содержащей адрес.
void ShowElements(int *m, int size)
{
for (int n = 0; n < size; m++,n++)
cout<<*m<<"\t";
}
29.
Когда имя массива передается функции, то на самом деле ей передаетсяместоположение начала этого массива. Внутри вызванной функции такой
аргумент является точно такой же переменной, как и любая другая, так что имя
массива в качестве аргумента действительно является указателем, т.е.
переменной, содержащей адрес.
30.
swap()которая меняет x и y местами через указатели px и py
Написать функцию
31.
32.
1 вариант2 вариант