Содержание
- 2. Общие сведениях об указателях указатель - переменная, которая содержит адрес другой переменной Указуемая переменная – переменная,
- 3. Исходные предпосылки Физическая память компьютера – одномерный массив Необходимость гибкой работы с адресами оперативной памяти Си
- 4. Формат описания указателя тип *имя; * в описании – признак указателя тип относится к указуемой переменной
- 5. Свойства указателей освобождают от необходимости помнить адреса ячеек памяти поддерживают операции адресной арифметики перемещение от одной
- 6. Инициализация указателей int A[5]={2,1,5,3,4}; int *p=&A[0];//или int *p=A;
- 7. Обращение к содержимому a=*p * в выражении означает доступ к указуемому содержимому
- 8. Этапы работы с указателем Определение указателя Присваивание указателю адреса другой переменной Работа с переменной через указатель
- 9. Пустой указатель int *t=NULL; Пустой указатель – нулевой адрес При обращении к нему формируется системное сообщение
- 10. Работа с массивами с помощью указателей int X[]={5,1,4,2,3}, *p, i=2, k=0; p=&X[0]; p++; k=*(p+i);
- 11. Операции адресной арифметики Обращение к содержимому со смещением *(p+i) – содержимое ячейки на i элементов вперед
- 12. Операции адресной арифметики Cравнение указателей p p==q; указатели указывают на одну и ту же ячейку? Вычитание
- 13. Примеры операций над указателями int X[]={5,1,4,2,3}, *p,*q, i=0, k=0,j=0; p=&X[2]; q=&X[4]; p--; k=*(p-1);//k=? if(p j=q-p;//j=? if(*p>*q)
- 14. Сравнение массивов и указателей Сходства Обеспечивают доступ к элементам по номеру Тип данных учитывает размер элементов
- 15. Эквивалентность операций над указателями и массивами int X[5],*p,k=2; p=X; X ~ &X[0] X+k ~ &X[0] p+k
- 16. Обработка массива с помощью указателя int X[]={5,1,4,2,3}, *p,*q, i=0, n=5,s=0; //Способ 1 p=X; for(i=0;i s=s+p[i];// указатель
- 17. Поиск элемента с помощью указателей int X[]={5,1,4,2,3}, *p,*q, i=0, n=5,s=0; for(p=X;p if(*p==4) q=p; s=*q; q=X; for(p=X+1;p
- 18. Перестановки элементов с помощью указателей int X[]={5,1,4,2,3}, *p,*q, i=0, n=5,s=0; p=X; q=p+4; s=*p; *p=*q; *q=s; for(q=p;q
- 20. Скачать презентацию