Содержание
- 2. Функции Функция в СИ имеет вид имя (список аргументов, если они имеются) описания аргументов, если они
- 3. Функции Если функция возвращает что-либо отличное от целого значения, то перед ее именем может стоять указатель
- 4. Функции Вызывающая функция может игнорировать возвращаемое значение, если она этого пожелает. Более того, после return может
- 5. Аргументы функции Аргументы функций передаются по значению, т.е. вызванная функция получает свою временную копию каждого аргумента,
- 6. Внешние переменные Если в качестве аргумента функции выступает имя массива, то передается адрес начала этого массива;
- 7. Внешние переменные В силу своей глобальной доступности внешние переменные предоставляют другую, отличную от аргументов и возвращаемых
- 8. Внешние переменные Третья причина использования внешних переменных обусловлена их областью действия и временем существования. Автоматические переменные
- 9. Область действия Областью действия имени является та часть программы, в которой это имя определено. Для автоматической
- 10. Область действия Важно различать описание внешней переменной и ее определение. описание указывает свойства переменной (ее тип,
- 11. Статические переменные Во всех файлах, составляющих исходную программу, должно содержаться только одно определение внешней переменной; другие
- 12. Статические переменные Внешние статические переменные определены в остальной части того исходного файла, в котором они описаны,
- 13. Регистровые переменные Внутренние статические объекты определены только внутри одной функции; внешние статические объекты (переменные или функции)
- 14. Регистровые переменные Часть int может быть опущена. Описание register можно использовать только для автоматических переменных и
- 15. Рекурсия В языке "C" функции могут использоваться рекурсивно; это означает, что функция может прямо или косвенно
- 16. Указатели и адреса Указатель - это переменная, содержащая адрес другой переменной. Указатели очень широко используются в
- 17. Указатели и адреса Операция & применима только к переменным и элементам массива, конструкции вида &(х-1) и
- 18. Указатели и адреса Переменные, участвующие во всем этом необходимо описать: int x, y; Описание указателя int
- 19. Указатели и адреса Указатели могут входить в выражения. Например, если рх указывает на целое х, то
- 20. Указатели и аргументы функций И наконец, так как указатели являются переменными, то с ними можно обращаться,
- 21. Указатели и аргументы функций Так как операция & выдает адрес переменной, то &a является указателем на
- 22. Указатели и массивы Указатели в качестве аргументов обычно используются в функциях, которые должны возвращать более одного
- 23. Указатели и массивы Запись a[i] соответствует элементу массива через i позиций от начала. Если pa -
- 24. Указатели и массивы Таким образом, если pa указывает на a[0], то *(pa+1) ссылается на содержимое a[1],
- 25. Указатели и массивы Так как имя массива является синонимом местоположения его нулевого элемента, то присваивание pa=&a[0]
- 26. Указатели и массивы Имеется одно различие между именем массива и указателем, которое необходимо иметь в виду.
- 27. Указатели и массивы Операция увеличения s совершенно законна, поскольку эта переменная является указателем; s++ никак не
- 28. Указатели и массивы Можно передать функции часть массива, если задать в качестве аргумента указатель начала подмассива.
- 29. Адресная арифметика Если p является указателем, то операция p++ увеличивает p так, что он указывает на
- 30. Адресная арифметика Функция free(p) освобождает приобретенную таким образом память, так что ее в дальнейшем можно снова
- 31. Адресная арифметика Простейшая реализация состоит в том, чтобы функция раздавала отрезки большого символьного массива, которому присвоили
- 32. Адресная арифметика Когда к функции alloc обращаются за выделением n символов, то она проверяет, достаточно ли
- 33. Адресная арифметика char *alloc(n) /* return pointer to n characters */ int n; { if (allocp
- 34. Адресная арифметика Указатель может быть инициализирован точно так же, как и любая другая переменная, хотя обычно
- 35. Адресная арифметика Так как имя массива является адресом его нулевого элемента, то это можно было бы
- 36. Адресная арифметика В языке Cи гарантируется, что ни один правильный указатель данных не может иметь значение
- 37. Адресная арифметика Во-первых, при определенных условиях указатели можно сравнивать. Если p и q указывают на элементы
- 38. Адресная арифметика Вычитание указателей тоже возможно: если p и q указывают на элементы одного и того
- 39. Массивы указателей, указатели указателей Так как указатели сами являются переменными, то можно ожидать использования массива указателей.
- 40. Массивы указателей, указатели указателей Процесс сортировки включает три шага: чтение всех строк ввода их сортировка вывод
- 41. Массивы указателей, указатели указателей #define maxlen 1000 readlines(lineptr, maxlines) /* read input lines */ char *lineptr[];
- 42. Массивы указателей, указатели указателей Функция, осуществляющая вывод, должна печатать строки в том порядке, в каком они
- 43. Массивы указателей, указатели указателей Это означает, что lineptr[i] - указатель на символы, а *lineptr[i] извлекает символ.
- 44. Массивы указателей, указатели указателей Справившись с вводом и выводом, мы можем перейти к сортировке. sort(v, n)
- 46. Скачать презентацию