🗊Презентация Базовые понятия языка Си

Нажмите для полного просмотра!
Базовые понятия языка Си, слайд №1Базовые понятия языка Си, слайд №2Базовые понятия языка Си, слайд №3Базовые понятия языка Си, слайд №4Базовые понятия языка Си, слайд №5Базовые понятия языка Си, слайд №6Базовые понятия языка Си, слайд №7Базовые понятия языка Си, слайд №8Базовые понятия языка Си, слайд №9Базовые понятия языка Си, слайд №10Базовые понятия языка Си, слайд №11Базовые понятия языка Си, слайд №12Базовые понятия языка Си, слайд №13Базовые понятия языка Си, слайд №14Базовые понятия языка Си, слайд №15

Вы можете ознакомиться и скачать презентацию на тему Базовые понятия языка Си. Доклад-сообщение содержит 15 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Базовые понятия языка Си
Описание слайда:
Базовые понятия языка Си

Слайд 2





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

Слайд 3





Адреса и указатели
Указатель – это переменная, значением которой является адрес объекта конкретного типа.
 Если в некоторый момент времени адрес объекта неизвестен или переменная – указатель еще не получила значения, то такой переменной придается значение специальной константы NULL, не равное никакому адресу («нулевой» адрес). 
Указатели, как и любые переменные программы, должны быть объявлены. В объявление указателя входит указание типа объекта, на который ссылается указатель, признак (символ *) того, что переменная является указателем, имя указателя.
Описание слайда:
Адреса и указатели Указатель – это переменная, значением которой является адрес объекта конкретного типа. Если в некоторый момент времени адрес объекта неизвестен или переменная – указатель еще не получила значения, то такой переменной придается значение специальной константы NULL, не равное никакому адресу («нулевой» адрес). Указатели, как и любые переменные программы, должны быть объявлены. В объявление указателя входит указание типа объекта, на который ссылается указатель, признак (символ *) того, что переменная является указателем, имя указателя.

Слайд 4





Адреса и указатели
Примеры объявления указателей:
int *f; /*указатель на объект целого типа*/
float *a,*b; /*указатели на объекты вещественного типа*/
1.Обычный указатель (кроме указателя типа void) может ссылаться на объекты только того типа, который указан при объявлении.
2. После объявления значение указателя не определено (соответствует NULL).
Получение адресной информации осуществляется с помощью унарной операции &. Например, адрес переменной "А" формируется на основе выражения 
&А
 Это выражение в ходе выполнения программы позволяет определить адрес участка памяти, выделенного переменной А.
Описание слайда:
Адреса и указатели Примеры объявления указателей: int *f; /*указатель на объект целого типа*/ float *a,*b; /*указатели на объекты вещественного типа*/ 1.Обычный указатель (кроме указателя типа void) может ссылаться на объекты только того типа, который указан при объявлении. 2. После объявления значение указателя не определено (соответствует NULL). Получение адресной информации осуществляется с помощью унарной операции &. Например, адрес переменной "А" формируется на основе выражения &А Это выражение в ходе выполнения программы позволяет определить адрес участка памяти, выделенного переменной А.

Слайд 5





Операции над указателями
Описание слайда:
Операции над указателями

Слайд 6





Операция присваивания
Предполагает, что справа от знака присваивания стоит:
Другой указатель, который имеет конкретное значение;
Константа NULL;
Адрес объекта того же типа, что и указатель слева. 
Примеры записи операции присваивания:
с=d;
Предполагается, что переменные с и d являются указателями одного типа. После этой операции оба указателя обеспечивают доступ к одному участку памяти.
c=NULL;
c=&a; //Указателю присваивается значение адреса
Если указателю одного типа требуется присвоить значение указателя другого типа, то применяют приведение типов:
int *k;
float *z;
k=(int) z; //преобразование перед присваиванием
Описание слайда:
Операция присваивания Предполагает, что справа от знака присваивания стоит: Другой указатель, который имеет конкретное значение; Константа NULL; Адрес объекта того же типа, что и указатель слева. Примеры записи операции присваивания: с=d; Предполагается, что переменные с и d являются указателями одного типа. После этой операции оба указателя обеспечивают доступ к одному участку памяти. c=NULL; c=&a; //Указателю присваивается значение адреса Если указателю одного типа требуется присвоить значение указателя другого типа, то применяют приведение типов: int *k; float *z; k=(int) z; //преобразование перед присваиванием

Слайд 7





Операция разыменования (обращения по адресу, раскрытия ссылки)
Позволяет обратиться к соответствующему объекту (переменной). Эта операция является унарной. 
Операция разыменования обозначается символом звездочки. Выражение *f соответствует объекту, на который указывает  указатель "f". 
Выражение *f  имеет все "права" переменной, например оператор *f=0 означает занесение нуля в тот участок памяти, адрес которого хранится в переменной – указателе "f".
Разыменовывание указателя, соответствующего NULL, недопустимо.
Описание слайда:
Операция разыменования (обращения по адресу, раскрытия ссылки) Позволяет обратиться к соответствующему объекту (переменной). Эта операция является унарной. Операция разыменования обозначается символом звездочки. Выражение *f соответствует объекту, на который указывает указатель "f". Выражение *f имеет все "права" переменной, например оператор *f=0 означает занесение нуля в тот участок памяти, адрес которого хранится в переменной – указателе "f". Разыменовывание указателя, соответствующего NULL, недопустимо.

Слайд 8





Унарные операции сложения ++ и вычитания – –
Позволяют увеличить или уменьшить значение указателя на величину, равную длине участка памяти, занимаемого соответствующим типом данных. Тем самым обеспечивается переход к началу участка памяти для соседней переменной.
В частности, переменные типа char занимают в памяти участок длиной в 1 байт, переменные типа int – два байта, переменные типа long int и float  – 4 байта, переменные double – 8 байт, long double – 10 байт.
Описание слайда:
Унарные операции сложения ++ и вычитания – – Позволяют увеличить или уменьшить значение указателя на величину, равную длине участка памяти, занимаемого соответствующим типом данных. Тем самым обеспечивается переход к началу участка памяти для соседней переменной. В частности, переменные типа char занимают в памяти участок длиной в 1 байт, переменные типа int – два байта, переменные типа long int и float – 4 байта, переменные double – 8 байт, long double – 10 байт.

Слайд 9





Аддитивные операции
В полном объеме эти операции не разрешены. Переменные типа указатель нельзя суммировать, но к переменной типа указатель можно добавлять целую величину k. При этом указатель увеличивается на величину k*r, где r – длина участка в байтах, занимаемого соответствующей переменной. Так при добавлении к указателю переменной типа float величины, равной трем, указатель увеличится на значение 3*4 = 12 байт.
Аналогично изменяется значение указателя при вычитании из его значения целой величины. 
Операция вычитания применима к указателям одного типа. Из значения одного указателя можно вычитать значение другого указателя. Результатом операции является целая величина со знаком. Значение результата формируется в "масштабе" соответствующего типа данных. Например, при вычитании указателей двух соседних величин типа int результат будет равнее единице, а не двум, хотя переменные этого типа занимают два байта.
Описание слайда:
Аддитивные операции В полном объеме эти операции не разрешены. Переменные типа указатель нельзя суммировать, но к переменной типа указатель можно добавлять целую величину k. При этом указатель увеличивается на величину k*r, где r – длина участка в байтах, занимаемого соответствующей переменной. Так при добавлении к указателю переменной типа float величины, равной трем, указатель увеличится на значение 3*4 = 12 байт. Аналогично изменяется значение указателя при вычитании из его значения целой величины. Операция вычитания применима к указателям одного типа. Из значения одного указателя можно вычитать значение другого указателя. Результатом операции является целая величина со знаком. Значение результата формируется в "масштабе" соответствующего типа данных. Например, при вычитании указателей двух соседних величин типа int результат будет равнее единице, а не двум, хотя переменные этого типа занимают два байта.

Слайд 10





Операции сравнения 
(<, >, <=, >=, ==, !=)
Применимы только при сопоставлении указателей одного типа или при сравнении указателя с константой NULL.
Описание слайда:
Операции сравнения (<, >, <=, >=, ==, !=) Применимы только при сопоставлении указателей одного типа или при сравнении указателя с константой NULL.

Слайд 11





Операция получения адреса
Позволяет получить адрес указателя. Указатель является переменной, поэтому и к нему применима операция получения адреса. Например, следующий фрагмент программы позволит отобразить значение адреса указателя
float *a;
printf("\n адрес указателя %p", &a);
Отображение указателей и адресов производится с использование спецификации р – представление шестнадцатеричных чисел. 
Отображение результатов вычитания указателей осуществляется с использованием спецификации d для целых чисел.
Описание слайда:
Операция получения адреса Позволяет получить адрес указателя. Указатель является переменной, поэтому и к нему применима операция получения адреса. Например, следующий фрагмент программы позволит отобразить значение адреса указателя float *a; printf("\n адрес указателя %p", &a); Отображение указателей и адресов производится с использование спецификации р – представление шестнадцатеричных чисел. Отображение результатов вычитания указателей осуществляется с использованием спецификации d для целых чисел.

Слайд 12





Применение указателей при работе с массивами
В языке Си при традиционном объявлении массива его имя становится указателем на начало области памяти, выделенной под массив, т.е. имя массива без индексов является указателем на первый элемент, т.е. элемент с нулевым индексом этого массива. 
В частности:
float r[10], *pn1;
pn1=r;
pn1=&r[0];
В этом фрагменте программы два последних оператора эквиваленты.
Описание слайда:
Применение указателей при работе с массивами В языке Си при традиционном объявлении массива его имя становится указателем на начало области памяти, выделенной под массив, т.е. имя массива без индексов является указателем на первый элемент, т.е. элемент с нулевым индексом этого массива. В частности: float r[10], *pn1; pn1=r; pn1=&r[0]; В этом фрагменте программы два последних оператора эквиваленты.

Слайд 13





Применение указателей при работе с массивами
Элементы массива в памяти располагаются последовательно друг за другом, поэтому, изменяя указатель на величину, равную длине элемента массива, можно переходить к соседним элементам. 
Имя массива интерпретируется как указатель – константа, следовательно, к нему не применимы операции изменения значений, оно не может стоять слева от знака присваивания.
Фрагмент программы для подсчета среднего значения элементов массива с применением указателей
float r[10],s, *pn1;
for (pn1=&r[0], s=0; pn1<=&r[9]; s+=*pn1, pn1++);
s/=10;
Описание слайда:
Применение указателей при работе с массивами Элементы массива в памяти располагаются последовательно друг за другом, поэтому, изменяя указатель на величину, равную длине элемента массива, можно переходить к соседним элементам. Имя массива интерпретируется как указатель – константа, следовательно, к нему не применимы операции изменения значений, оно не может стоять слева от знака присваивания. Фрагмент программы для подсчета среднего значения элементов массива с применением указателей float r[10],s, *pn1; for (pn1=&r[0], s=0; pn1<=&r[9]; s+=*pn1, pn1++); s/=10;

Слайд 14





Применение указателей при работе с массивами
В приведенном примере тело цикла отсутствует (за оператором for стоит символ ";"), все действия по подсчету суммы записаны в заголовке цикла.
Выражения:
 pn1=&r[0] 
обеспечивает установку указателя на первый (т.е. нулевой) элемент массива;
s+=*pn1 
суммирование элементов массива;
pn1++ 
изменение указателя для перехода к следующему элементу массива (фактическое приращение указателя происходит не на единицу, а на 4, так как каждый элемент в памяти занимает 4 байта).
Операция индексирования r[i] эквивалентна *(r+i), где r – имя массива, i – выражение целого типа. Для многомерных массивов правило остается такое же. Например, z22[n] [m] [k] эквивалентно *( z22[n] [m] +k) и далее *(*(*(z22+n)+m)+k).
Описание слайда:
Применение указателей при работе с массивами В приведенном примере тело цикла отсутствует (за оператором for стоит символ ";"), все действия по подсчету суммы записаны в заголовке цикла. Выражения: pn1=&r[0] обеспечивает установку указателя на первый (т.е. нулевой) элемент массива; s+=*pn1 суммирование элементов массива; pn1++ изменение указателя для перехода к следующему элементу массива (фактическое приращение указателя происходит не на единицу, а на 4, так как каждый элемент в памяти занимает 4 байта). Операция индексирования r[i] эквивалентна *(r+i), где r – имя массива, i – выражение целого типа. Для многомерных массивов правило остается такое же. Например, z22[n] [m] [k] эквивалентно *( z22[n] [m] +k) и далее *(*(*(z22+n)+m)+k).

Слайд 15





Применение указателей в параметрах функции
Схема вызова функции с помощью передачи параметров по значению не позволяет непосредственно возвращать из функции несколько результатов. 
Существует косвенная возможность изменения значений переменных в вызывающей программе на основе применения указателей:
1. В качестве фактических параметров при обращении к функции задаются адреса объектов вызывающей программы;
2. В функции с помощью разыменования указателей обеспечивается доступ к соответствующему объекту вызывающей программы, в том числе, это позволяет изменять значение объекта программы.
Описание слайда:
Применение указателей в параметрах функции Схема вызова функции с помощью передачи параметров по значению не позволяет непосредственно возвращать из функции несколько результатов. Существует косвенная возможность изменения значений переменных в вызывающей программе на основе применения указателей: 1. В качестве фактических параметров при обращении к функции задаются адреса объектов вызывающей программы; 2. В функции с помощью разыменования указателей обеспечивается доступ к соответствующему объекту вызывающей программы, в том числе, это позволяет изменять значение объекта программы.



Похожие презентации
Mypresentation.ru
Загрузить презентацию