Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Использование указателей и ссылок

Содержание

ПланОсобенности работы с указателямиОсобенности использования ссылокРазличные способы передачи данных в функциюМассивы указателейУказатели на функцииПерегрузка функцийШаблоны функцийРекурсияПримеры обработки символов и строк
Лекция 4 Особенности использования указателей и ссылок О.С. ТрушинЗав. лаб. ЯФ ФТИАН ПланОсобенности работы с указателямиОсобенности использования ссылокРазличные способы передачи данных в функциюМассивы указателейУказатели Указателиp:char* p; Пример:char v[5];char* p=&v[3]0:1:2:3:4:* - операция «взять содержимое»& - операция «взять Разыменование указателейОперация разыменования указателя – это получение данных, на которые он ссылаетсяПример:int Арифметические операции с указателямиДля указателей участвующих в выражениях определены специальные правила выполнения Инициализация указателя с помощью оператора newПример:void main(){char* word;word=new char;cin >> word;}Оператор new СсылкиСсылки используются в качестве альтернативных имен переменных Пример:int  i=20;Int  &r=I;r++; Передача аргументов в функцию по значениюПример объявления функции:Int squareByValue(int a){  return Передача аргументов в функцию по ссылкеПри передаче аргумента в функцию по ссылке Передача аргументов в функцию с помощью указателяПри передаче аргумента в функцию с Массивы указателейМассивы могут содержать указатели. Типичный пример обработка массива строк.Пример1 инициализация при Указатели на функцииУказатель на функцию содержит адрес функции в памяти. Их можно Перегрузка функцийС++ позволяет определить несколько функций с одним и тем же именем.Эта Шаблоны функцийПример объявления шаблона:template T maximum( T x1, T x2, T x3){ РекурсияРекурсивная функция – это функция, которая вызывает сама себя.int factorial( int x){If(x Пример1 Подсчет числа вхождений данной буквыvoid main(){char* line= Пример2 Обработка строки с использованием указателя void main(){ifstream file1( Составные элементы данных: структуры structstruct Имя{  Тело};Пример объявления:struct Persona{char name[10];char surname[20];int Примеры использования объектов типа structstruct Persona{ char Name[10]; char FName[15]; char Surname[20];
Слайды презентации

Слайд 2 План
Особенности работы с указателями
Особенности использования ссылок
Различные способы передачи

ПланОсобенности работы с указателямиОсобенности использования ссылокРазличные способы передачи данных в функциюМассивы

данных в функцию
Массивы указателей
Указатели на функции
Перегрузка функций
Шаблоны функций
Рекурсия
Примеры обработки

символов и строк



Слайд 3 Указатели

p:
char* p;
Пример:

char v[5];

char* p=&v[3]


0:
1:
2:
3:
4:
* - операция «взять

Указателиp:char* p; Пример:char v[5];char* p=&v[3]0:1:2:3:4:* - операция «взять содержимое»& - операция

содержимое»
& - операция «взять адрес»
Указатель это специальная
переменная для хранения

адреса памяти

Слайд 4 Разыменование указателей
Операция разыменования указателя – это получение данных,

Разыменование указателейОперация разыменования указателя – это получение данных, на которые он

на которые он ссылается
Пример:

int i=20;
int*

iptr = &i;
int j;
int k=50;

j= *iptr; // j присваивается значение i
*iptr = k; // i присваивается значение k

x= *y;


Слайд 5 Арифметические операции с указателями
Для указателей участвующих в выражениях

Арифметические операции с указателямиДля указателей участвующих в выражениях определены специальные правила

определены
специальные правила выполнения арифметических операций: СЛОЖЕНИЯ, ВЫЧИТАНИЯ, ИНКРЕМЕНТА,

ДЕКРЕМЕНТА

Пример:

int* p;
int n;

p=p+n;

Указатель смещается на n – позиций
в массиве целых чисел


Слайд 6 Инициализация указателя с помощью оператора new
Пример:

void main(){

char* word;

word=new

Инициализация указателя с помощью оператора newПример:void main(){char* word;word=new char;cin >> word;}Оператор

char;

cin >> word;

}
Оператор new – обеспечивает динамическое выделение памяти

«из кучи»

Слайд 7 Ссылки
Ссылки используются в качестве альтернативных
имен переменных
Пример:

int

СсылкиСсылки используются в качестве альтернативных имен переменных Пример:int i=20;Int &r=I;r++; // увеличивает i на единицу

i=20;
Int &r=I;


r++; // увеличивает i на единицу


Слайд 8 Передача аргументов в функцию по значению
Пример объявления функции:

Int

Передача аргументов в функцию по значениюПример объявления функции:Int squareByValue(int a){ return

squareByValue(int a)
{
return a *= a;
}
Пример вызова функции:

void

main()
{
int x=2;
int z=squareByValue(x);
cout << “ x=“ << x << “ z=‘ <}

При передаче аргументов в функцию по значению их величины копируются

Ответ: x=2 z=4


Слайд 9 Передача аргументов в функцию по ссылке
При передаче аргумента

Передача аргументов в функцию по ссылкеПри передаче аргумента в функцию по

в функцию по ссылке ей передается только
адрес переменной


Пример объявления функции:

Int squareByReference(int &a)
{
return a *= a;
}

Пример вызова функции:

void main()
{
int x=2;
int z=squareByReference(x);
cout << “ x=“ << x <<“ z=‘ <}

Ответ: x=4 z=4


Слайд 10 Передача аргументов в функцию с помощью указателя
При передаче

Передача аргументов в функцию с помощью указателяПри передаче аргумента в функцию

аргумента в функцию с помощью указателя
ей передается только

адрес переменной

Пример объявления функции:

Int squareByPointer(int *nPtr)
{
return *nPtr *= *nPtr;
}

Пример вызова функции:

void main()
{
int x=2;
int z=squareByPointer(&x);
cout << “ x=“ << x <<“ z=‘ <}

Ответ: x=4 z=4


Слайд 11 Массивы указателей
Массивы могут содержать указатели. Типичный пример обработка

Массивы указателейМассивы могут содержать указатели. Типичный пример обработка массива строк.Пример1 инициализация

массива строк.
Пример1 инициализация при объявлении:

char* suit[3]={“Черви”, “Бубны”, “Пики”}
Пример2 инициализация

с помощью оператора new:
void main(){
ifstream file(“test.txt”);
char* line[3];

for(int i=0; i<3; i++){
line[i]=new char;
file.getline(line[i],80,’\n’);
cout << line[i] << endl;
}
}

Слайд 12 Указатели на функции
Указатель на функцию содержит адрес функции

Указатели на функцииУказатель на функцию содержит адрес функции в памяти. Их

в памяти.
Их можно передавать функциям, возвращать из функций,


хранить в массивах и присваивать другим указателям на функции.

Пример объявления функций:

void bubleSorting( int *work, int size, int (*compare) (int,int) )
{

if( (*compare)(work[count], work[count+1])
swap(&work[count], &work[count+1]);
}

int ascending(const int a, const int b)
{ return bint descending(const int a, const int b)
{ return b>a; }


Пример вызова функции:


bubble(a,size,ascending);


Слайд 13 Перегрузка функций
С++ позволяет определить несколько функций с одним

Перегрузка функцийС++ позволяет определить несколько функций с одним и тем же

и тем же именем.
Эта особенность называется перегрузкой функций.
Пример:

#include

int

square(int x) { return x*x;)

double square(double y) { return y*y);

void main()
{
cout << square(2) << endl;
cout << square(2.5);

}

Сигнатура функции =>
комбинация имени и типа параметров


Слайд 14 Шаблоны функций
Пример объявления шаблона:

template
T maximum( T

Шаблоны функцийПример объявления шаблона:template T maximum( T x1, T x2, T

x1, T x2, T x3)
{
T max= x1;

if( x2 > max) max=x2;
if( x3 > max) max=x3

return max;
}

Шаблоны средства генерации кода

Пример использования:

void main()
{
int x1=1,x2=2,x3=3;
cout << maximum(x1,x2,x3);

double y1=1.1,y2=1.2,y3=1.3;
cout << maximum(y1,y2,y3);

char z1=‘a’,z2=‘b’,z3=‘c’;
cout << maximum(z1,z2,z3);

}


Слайд 15 Рекурсия
Рекурсивная функция – это функция, которая вызывает сама

РекурсияРекурсивная функция – это функция, которая вызывает сама себя.int factorial( int x){If(x

себя.

int factorial( int x)
{

If(x

cout << factorial(10);

}

Пример: вычисление факториала

N!=N*(N-1)!


Слайд 16 Пример1 Подсчет числа вхождений данной буквы
void main()
{
char* line="

Пример1 Подсчет числа вхождений данной буквыvoid main(){char* line=

Text for work \n";
char x=‘r’;

int count=0;

while(*line != '\n')
{

if( *line == x )count++;
++line;
}

cout << " count=" << count << endl;

system("pause");
}

Слайд 17 Пример2 Обработка строки с использованием указателя
void main()
{
ifstream

Пример2 Обработка строки с использованием указателя void main(){ifstream file1(

file1("text.txt");
int count=0;
char* line = new char[80];

file1.getline( line ,80, '\n');
char

x = ‘a’;

while(*line != '\0')
{
if( *line == x )count++;
++line;
}

cout << " count=" << count << endl;

system("pause");
}

Слайд 18 Пример3 Работа с массивом строк
void main() {
int count=0;
char

Пример3 Работа с массивом строкvoid main() {int count=0;char x=‘e’;ifstream file1(

x=‘e’;
ifstream file1("text.txt");
char line[80];
int i;
while( file1.getline( line ,80, '\n') )

{
i=0;
while(line[i] != '\0') {
if( line[i] == x1 )count1++;
if( line[i] == x2 )count2++;
if( line[i] == x3 )count3++;
i++;
}
}
cout << x << " count=" << count << endl;
system("pause");
}

Слайд 19 Составные элементы данных: структуры struct
struct Имя
{

Тело

};
Пример объявления:

struct

Составные элементы данных: структуры structstruct Имя{ Тело};Пример объявления:struct Persona{char name[10];char surname[20];int

Persona
{

char name[10];
char surname[20];
int age;

};
Пример создания
экземпляра

void main()
{

Persona stud[20];


cout

stud.name;
}


  • Имя файла: ispolzovanie-ukazateley-i-ssylok.pptx
  • Количество просмотров: 135
  • Количество скачиваний: 0