- •1 Основні відомості про вказівники
- •2. Вказівники та посилання
- •Void function_a (char*, int, short*);
- •Int *pi; /* вказівник-змінна на дані типу int */
- •3. Ініціалізація вказівника
- •4. Розіменування та присвоєння
- •5. Void-вказівник
- •6. Операція пересування вказівника
- •7. Використання вказівників з модифікатором const
- •8. Деактивації дії модифікатора
- •9. Подвійний вказівник
- •10. Вказівники і масиви
- •11. Доступ до ділянок динамічної пам'яті
- •12. Звільнення пам'яті
- •8. Операції з вказівниками
- •Int I, *pi; /* pi –змінна-вказівник */
- •13. Динамічні масиви
- •11. Посилання
- •Лабораторный практикум
- •Вопросы без ответов
- •3 Основні операції над вказівниками
- •4 Багаторівнева непряма адресація
- •5 Операції над вказівниками
- •Void main ()
- •Void main()
- •6 Проблеми, пов'язані з вказівниками
- •Int *х; /* змінній-покажчику 'х' виділена оп, але 'х' не містить значення адреси оп для змінної */
- •Int *х; /* х - ім'я покажчика, він одержав оп*/
- •Void main ()
- •9 Масиви
- •1.9.1 Основні поняття
- •Int а[5]; /* оголошення зовнішнього масиву */ main ()
- •9.2 Оголошення та звертання в одновимірних масивах
- •9.3 Оголошення та звертання до багатовимірних масивів
- •Int а[3][4]; /* а - вказівник-константа */
- •10 Масиви покажчиків
- •10.1 Робота з великими масивами
- •Void main()
- •Int *p[200], I, j; clrscr() ;
- •10.2 Вільні масиви та покажчики
- •11 Символьні рядки
- •11.1 Основні відомості про представлення рядків
- •11.2 Функції роботи з рядками
- •1. Функції введення рядків.
- •2. Функції виведення рядків.
- •14 Лекція №14
- •14.1 Вказівники Лекція № 2 - Вказівники та посилання
- •1.2.1. Вказівники
- •6. Вказівники і масиви
- •6.1. Вказівники і адреси
- •6.2. Вказівники і аргументи функцій
- •6.3. Вказівники і масиви
- •6.4. Адресна арифметика
- •6.5. Вказівники символів і функції
- •6.6. Вказівники – не цілі значення
- •6.7. Багатовимірні масиви
- •6.8. Масиви вказівників (вказівники на вказівники)
- •6.9. Ініціалізація масивів вказівників
- •6.10. Вказівники і багатовимірні масиви
- •6.11. Командний рядок аргументів
- •6.12. Вказівники на функції
- •Посібник для початківця про вказівники
- •6. Вказівники і структуровані програмні змінні
- •9. Вказівники типу far
- •10. Вказівники і динамічні змінні (керування пам'яттю)
- •9. Вказівники типу far
- •10. Вказівники і динамічні змінні (керування пам'яттю)
- •8. Вказівники і динамічні змінні (керування пам'яттю)
- •Void* operator new(size_t t)
- •Void operator delete(void* p)
- •Void main()
14 Лекція №14
Тема: Вказівники та адресна арифметика
ПЛАН
14.1 Вказівники
14.2 Ініціалізація вказівників
14.3 Операції з вказівниками
14.4 Динамічні масиви
Час: 2 год.
Література:
14.1 Вказівники Лекція № 2 - Вказівники та посилання
1.2.
1.2.1. Вказівники
Тема: Масиви та вказівники, доступ до елементів масиву через індексні вказівники й динамічне виділення пам'яті, С, С++ Приклади програм, коментарі Програма 5 Мета роботи: Оволодіння навичками використання індексних виразів та вказівників при роботі з багатовимірними масивами та виведення на екран елементів псевдографіки у текстовому режимі.
Опис змінних
Опис функцій
Текст програми #include <stdio.h> #include <conio.h> #include <alloc.h> #include <stdlib.h> #include <math.h> void inputvector(int *,int n); void outputmatrix(int *,int n); void zmeyka(int *,int *,int n); void main() { /* http://nataliya.kiev.ua */ clrscr(); int **a,*b; int n; puts("Enter n:"); scanf("%d",&n); a=(int**)calloc(n,sizeof(int*)); b=(int*)calloc(n,sizeof(int)); if(a==NULL||b==NULL){puts("no memory");exit(1);} inputvector(b,n); zmeyka(b,*a,n); outputmatrix(*a,n); free(a); free(b); getch(); } void inputvector(int *m,int n) { for(int i=0;i<n;i++) {printf("b%d=",i+1); scanf("%d",m+i); } } void outputmatrix(int *k ,int n) { int i,j; for (i=0;i<n;i++) {for (j=0;j<n;j++) printf("%6.d",*(k+n*i+j)); printf("\n");} } void zmeyka(int *b,int *a,int n) { for (int i=0;i<n;i++) for (int j=0;j<n;j++) if (i%2!=0) *(a+i*n+j)=int(pow(*(b+j),i+1)); else *(a+i*n+j)=int(pow(*(b+n-j-1),i+1)); } Результат роботи програми 1) Enter n: 5 b1=1 b2=2 b3=3 b4=4 b5=5 5 4 3 2 1 1 4 9 16 25 125 64 27 8 1 1 16 81 256 625 3125 1024 243 32 1 2) Enter n: 4 b1=1 b2=5 b3=3 b4=8 8 3 5 1 1 25 9 64 512 27 125 1 1 625 81 4096 Теорія до програми Масив - це набір об'єктів однакового типу, розташованих один за одним у пам'яті комп'ютера. Масив можна описати наступним чином: тип_даних ім'я масиву [розмір_масиву] Кожний масив має им'я. Значення індексу повинні знаходитись у диапазоні від нуля до величини, що на одиницю менше розміру масиву, вказаного під час його опису. Тип_даних задає тип елементів масиву. Розмір_масиву - константа чи константний вираз, що задає кількість елементів масиву. Ім'я масиву є вказівником-константою, що дорівнює адресі початку масива (першого байта першого елемента масива). Доступ до окремих елементів масива може здійснюватись або за допомогою імені масива та індексу (порядковому номеру) або за вказівником (операція *). Іншими словами, наступні посилання будуть повністю еквівалентними: array[i] *(array+i) Кожний раз, коли при виконанні програми у виразі зв'являється ідентифікатор типу масиву, він перетворюється у вказівник на перший елемент масиву. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
