Перевод натурального числа из десятичной системы счисления в двоичную

Содержание

Слайд 2

Понятие указателя. Операции с указателями.

Понятие указателя. Операции с указателями.

Слайд 3

План лекции: 1. Понятие указателя, виды указателей 2. Объявление и разыменование указателей 3. Операции с

План лекции: 1. Понятие указателя, виды указателей 2. Объявление и разыменование указателей
указателями 4. Нулевые указатели 5. Указатели и массивы

Слайд 4

Указатель — элемент программы, хранящий адреса памяти некоторого объекта (например, переменной) определённого

Указатель — элемент программы, хранящий адреса памяти некоторого объекта (например, переменной) определённого
типа.
Указатель — это переменная, которая содержит адрес некоторого объекта.

20

i

i прямо ссылается на переменную со значением 20

20

i

iPtr

iPtr косвенно ссылается на переменную со значением 20

Слайд 5

Виды указателей:

указатели на объект

указатели на функцию

указатель на void

Указатель на

Виды указателей: указатели на объект указатели на функцию указатель на void Указатель
функцию – адрес в сегменте кода, по которому передается управление вызова функции.

тип (*имя) (список_типов_аргументов);
Пример:
int (*fun) (double, double);

Слайд 6

Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного

Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного
типа (основного или составного).

тип *имя;
Пример:
int *a, b, *с;

Указатель на void применяют, когда конкретный тип объекта, адрес которого надо хранить, не определен.

void *pv;
float f, *pf;
pf = &f;
pv = pf;
pf = (float*)pv;

Слайд 7

Указатель может быть константой или переменной, а также указывать на константу или

Указатель может быть константой или переменной, а также указывать на константу или
переменную.
Примеры:
int pi;
const int ci=1;
int *pi;
const int *pci;
int *const срi=&i;
const int *const срс=&ci;

Слайд 8

2. Объявление и разыменование указателей

int *countPtr; //countPtr указывает на объект типа int
double

2. Объявление и разыменование указателей int *countPtr; //countPtr указывает на объект типа
*xPtr, *yPtr, z;

Главная операция над указателями – это косвенное обращение – разыменование – обращение к объекту, на который настроен указатель.

char c1 = 'a';
char* p = &c1;
char c2 = *p;

Слайд 9

3. Операции с указателями

•& — взятие адреса
p=&v[3];
Операция взятия адреса является

3. Операции с указателями •& — взятие адреса p=&v[3]; Операция взятия адреса
унарной операцией, возвращающей адрес в памяти своего операнда.
•* — возврат значения по указанному адресу

int x=10;
int *p, *g;
p = &x;
g = p;
cout << *g;

Слайд 10

• p+n, где p — указатель, n — целое положительное число. Результат

• p+n, где p — указатель, n — целое положительное число. Результат
— некоторый указатель, полученный смещением p на n позиций вправо.
• p-n, где p — указатель, n — целое положительное число. Результат — некоторый указатель, полученный смещением p на n позиций влево.
• p-q, где p и q — указатели на один и тот же тип. Результат — целое число, равное количеству шагов, на которое нужно сместить q вправо, чтобы он достиг указателя p, также этот результат можно называть “расстоянием” между указателями, оно может быть и отрицательным, если элемент, на который направлен указатель q расположен правее (то есть, далее), чем элемент, на который направлен указатель p.
• p++ (инкремент), p-- (декремент), где p — указатель. p=p+1, p=p-1 соответственно.

Слайд 11

Константный указатель нельзя перемещать (записывать в него другой адрес), но можно его

Константный указатель нельзя перемещать (записывать в него другой адрес), но можно его
разыменовывать или делать его участников вышеперечисленных операций:
int ar[] = {-72, 3, 402, -1, 55, 132};
cout << *ar;
int* p = ar+3;
p--;
cout << *p;

a[i] == *(a+i),
где a указатель на массив любого типа и i допустимый индекс этого массива

Слайд 12

Функция, подсчитывающая число символов в строке:

int strlen(char* p)
{
int i =

Функция, подсчитывающая число символов в строке: int strlen(char* p) { int i
0;
while (*p++) i++;
return i;
}

int strlen(char* p)
{
char* q = p;
while (*q++) ;
return q-p-1;
}

Слайд 13

4. Нулевые указатели.

Указатель со значением 0 или NULL ни на что не

4. Нулевые указатели. Указатель со значением 0 или NULL ни на что
указывает и называется нулевым указателем.

Если указатель определён одним типом, а переменная, на которую он будет указывать другого типа то необходимо, перед присваиванием адреса, обязательно выполнять преобразование типов.
float x;
int *p;
p = (int*)&x;

Слайд 14

5. Массивы и указатели

int b[5]; //создать 5-элементный целый массив b
int *bPtr; //

5. Массивы и указатели int b[5]; //создать 5-элементный целый массив b int
создать указатель bPtr на целое

Присвоение указателю адрес первого элемента массива b:
bPtr=b;
bPtr=&b[0];
*(bPtr+3)

Слайд 15

#include
using namespace std;
int main()
{
int b[]={10, 20, 30, 40};

#include using namespace std; int main() { int b[]={10, 20, 30, 40};

int *bPtr=b;
cout<<"Massiv b:"<for (int i=0; i<4; i++)
cout<<"b["<//вывести массив b, использую bPtr и смещение
cout<<"\n Notacia Pointer/Offset:\n";
for (int offset=0; offset<4; offset++)
cout<<"*(bPtr + "<return 0;
}

Слайд 16

#include "stdafx.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Rus");
int array[8]={1,2,3,4,5,6,7,8};
int *Ptr;
for

#include "stdafx.h" #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) {
(int i=1; i<8; i+=2)
{ cout<<"Элемент массива с индексом ["<system("pause");
return 0;
}
Имя файла: Перевод-натурального-числа-из-десятичной-системы-счисления-в-двоичную.pptx
Количество просмотров: 40
Количество скачиваний: 0