Массивы и указатели презентация

Содержание

Указатели и адресация «Указатель — переменная, содержащая адрес объекта. Указатель не несет информации о содержимом объекта, а содержит сведения о том, где размещен объект». Источник: [1]

Слайд 1Массивы и указатели
Прико П.А.


Слайд 2Указатели и адресация
«Указатель — переменная, содержащая адрес объекта. Указатель не несет информации

о содержимом объекта, а содержит сведения о том, где размещен объект».
Источник: [1]

Слайд 3Указатели и адресация
«Каждая переменная в памяти имеет свой адрес - номер

первой ячейки, где она расположена, а также свое значение».
Источник: [1]

Слайд 4Указатели и адресация
«Указатель — это тоже переменная, которая размещается в памяти.

Она тоже имеет адрес, а ее значение является адресом некоторой другой переменной».
Источник: [1]

Слайд 5Указатели и адресация
«Переменная, объявленная как указатель, занимает 4 байта в оперативной

памяти (в случае 32-битной версии компилятора)».
Источник: [1]

Слайд 6источник: [1]
int a, *b;
a = 134;
b = &a;


Слайд 7Шаблон
тип *ИмяОбъекта;
char *p;


Тип указателя— это тип переменной, адрес которой

он содержит».

Источник: https://prog-cpp.ru/c-pointers/

Слайд 8*
* Операция «звездочка» -- получить значение объекта по его адресу
сhar c; //

переменная char *p; // указатель Источник: [1]


Слайд 9&
& - операция «амперсанд» -- получить адрес переменной
сhar c; // переменная char *p; // указатель p

= &c; // p = адрес c
Источник: [1]


Слайд 10Указатели как аргумент функции
void swap(int х, int у) {
int temp;

temp = х; x = y; у = temp;
}
swap(a, b); //не получится
swap(&a, &b); // правильно
void swap(int *px, int *py) {
int temp; temp = *рх; *рх = *py; *ру = temp;
}
Источник: [2]


Слайд 11Массивы
Массив – структура данных, представляющая собой набор элементов одного типа, компактно

размещенный в памяти.
double vector_a[10];
//vector_a[0] – указатель на начальный элемент массива
double vector[10] = {1,2,3,4,8,1,3,0,7,9};
Элементы массива нумеруются с нуля!
double x = vector[4]; // x равно 8
double y = vector[10]; // ошибка!





Слайд 12Двумерный массив
double matrix_a[4][5];
double matrix[4][5]={ 1,2,3,4,5,
2,3,4,5,6,
3,4,5,6,7,
1,3,5,7,9};



Слайд 13Отношение указателей и массивов
int A[5] = {1, 2, 3, 4,

5};
Массив хранит адрес, откуда начинаются его элементы
A[3] эквивалентно *(A + 3)



Слайд 14Массивы как аргументы функций
Массив всегда передается по ссылке! (Копирование потребовало бы

расход памяти)
int zamena (int vec[10], int i, int k) {
for (int j = 0; j < 10; j++) {
if (j % k == 0) {
vec[j] = vec [i];
}
}
}
int main() {
int vector[10] = {1,2,3,4,5,6,7,8,9,10};
zamena (vector, 1, 3);
return 0;
}



Слайд 15Массив указателей их использование и инициализация
«Можно создавать массивы указателей. Для

объявления массива целочисленных указателей из десяти элементов следует написать: int *х[10]; Для присвоения адреса целочисленной переменной var третьему элементу массива следует написать: х[2] = &var; Для получения значения var следует написать: *х [2] ».
Источник: [3]

Слайд 16Массив указателей их использование и инициализация
«Если необходимо передать массив указателей

в функцию, можно использовать метод, аналогичный передаче обычных массивов. Просто надо вызвать функцию с именем массива без индексов. Например, функция, получающая массив х, должна выглядеть следующим образом: void display_array(int *q[]) { int t; for (t=0; t<10; t++) { printf ("%d ", *q[t]); } ».
Источник: [3]

Слайд 17Массив указателей их использование и инициализация
«Надо помнить, что q -

это не указатель на целое, а массив указателей на целые. Следовательно, необходимо объявить параметр q как массив целых указателей. Он не может объявиться как простой целочисленный указатель, поскольку он не является им».
Источник: [3]

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

char, заканчивающиеся нуль-терминатором \0 называются С строками или строками в стиле С.
\0 — символ нуль-терминатора.
Символьные строки состоят из набора символьных констант заключённых в двойные кавычки. При объявлении строкового массива необходимо учитывать наличие в конце строки нуль-терминатора, и отводить дополнительный байт под него.
Источник: [4]

Слайд 19Строки и строковые функции
char string[10];
char string[10] = "abcdefghf"; //9 букв и

\0
char string[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f', '\0'};
Источник: [4]

Слайд 20Строковые функции


Слайд 21Список использованных источников
1. https://prog-cpp.ru/c-pointers/
2. http://cpp.com.ru/kr_cbook/ch5kr.html#p52
3. http://www.c-cpp.ru/books/massivy-ukazateley
4. http://cppstudio.com/post/437/



Слайд 22
Спасибо за внимание!


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

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


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

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