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

Скачать презентацию Массивы и указатели   Прико П. А. Скачать презентацию Массивы и указатели Прико П. А.

массивы.ppt

  • Количество слайдов: 22

>Массивы и указатели   Прико П. А. Массивы и указатели Прико П. А.

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

> Указатели и адресация «Каждая переменная в памяти имеет свой  адрес - номер Указатели и адресация «Каждая переменная в памяти имеет свой адрес - номер первой ячейки, где она расположена, а также свое значение» . Источник: [1]

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

> Указатели и адресация «Переменная, объявленная как указатель,  занимает 4 байта в оперативной Указатели и адресация «Переменная, объявленная как указатель, занимает 4 байта в оперативной памяти (в случае 32 -битной версии компилятора)» . Источник: [1]

>   источник: [1] int a, *b;  a = 134;  b источник: [1] int a, *b; a = 134; b = &a;

>    Шаблон тип *Имя. Объекта;  char *p; Тип указателя— это Шаблон тип *Имя. Объекта; char *p; Тип указателя— это тип переменной, адрес которой он содержит» . Источник: https: //prog-cpp. ru/c-pointers/

>    * * Операция «звездочка» -- получить  значение объекта по * * Операция «звездочка» -- получить значение объекта по его адресу сhar c; // переменная char *p; // указатель Источник: [1]

>   & & - операция «амперсанд» -- получить  адрес переменной & & - операция «амперсанд» -- получить адрес переменной сhar c; // переменная char *p; // указатель p = &c; // p = адрес c Источник: [1]

>Указатели как аргумент функции void swap(int х, int у) {  int temp; temp Указатели как аргумент функции 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]

>     Массивы Массив – структура данных, представляющая собой набор Массивы Массив – структура данных, представляющая собой набор элементов одного типа, компактно размещенный в памяти. 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]; // ошибка!

>   Двумерный массив double matrix_a[4][5];  double matrix[4][5]={ 1, 2, 3, 4, Двумерный массив 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};

> Отношение указателей и   массивов int A[5] = {1, 2, 3, 4, Отношение указателей и массивов int A[5] = {1, 2, 3, 4, 5}; Массив хранит адрес, откуда начинаются его элементы A[3] эквивалентно *(A + 3)

>Массивы как аргументы функций Массив всегда передается по ссылке! (Копирование потребовало бы  расход Массивы как аргументы функций Массив всегда передается по ссылке! (Копирование потребовало бы расход памяти) 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; }

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

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

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

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

> Строки и строковые функции char string[10];  char string[10] = Строки и строковые функции char string[10]; char string[10] = "abcdefghf"; //9 букв и char string[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f' , ''}; Источник: [4]

>    Строковые функции <string. h >   Функция  Строковые функции Функция Описание char *strcat(char *s 1, char *s 2) присоединяет s 2 к s 1, возвращает s 1 присоединяет не более n символов s 2 к s 1, завершает строку char *strncat(char *s 1, char *s 2, int n) символом '', возвращает s 1 char *strсpy(char *s 1, char *s 2) копирует строку s 2 в строку s 1, включая '', возвращает s 1 копирует не более n символов строки s 2 в строку s 1, возвращает char *strncpy(char *s 1, char *s 2, int n) s 1; сравнивает s 1 и s 2, возвращает значение 0, если строки int strcmp(char *s 1, char *s 2) эквивалентны сравнивает не более n символов строк s 1 и s 2, возвращает значение int strncmp(char *s 1, char *s 2, int n) 0, если начальные n символов строк эквивалентны int strlen(char *s) возвращает количество символов в строке s заполняет строку s символами, код которых равен значению c, char *strset(char *s, char c) возвращает указатель на строку s заменяет первые n символов строки s символами, код которых char *strnset(char *s, char c, int n) равен c, возвращает указатель на строку s

> Список использованных источников 1. https: //prog-cpp. ru/c-pointers/ 2. http: //cpp. com. ru/kr_cbook/ch 5 Список использованных источников 1. https: //prog-cpp. ru/c-pointers/ 2. http: //cpp. com. ru/kr_cbook/ch 5 kr. html#p 52 3. http: //www. c-cpp. ru/books/massivy-ukazateley 4. http: //cppstudio. com/post/437/

>Спасибо за внимание! Спасибо за внимание!