Методи за достъп до елементи на масиви
От името на масива е указател допустимо, например, като задача:
Има два различни начина за достъп до елементите на масив. Първият метод включва използването на конвенционални изрази индекс в скоби, например масив [16] = 3 или масив [Ь + 2] = 7. С този метод достъп, записани два израза, втората експресията е в квадратни скоби. Един от тези изрази трябва да бъде указател, а вторият - израз на тип число. Записване на последователност на тези изразяване може да бъде всеки, но оградена експресията се записва след втората. Следователно масив запис [16] и 16 [масива] са еквивалентни и означават броя на масив елемент шестнадесет. А курсора използва не трябва да бъде постоянна, което показва, твърдо вещество, той може да бъде променлива във индекс експресия. По-специално, след достъп задача PTR = масив до шестнадесетия елемент на масива може да бъде достъпна с помощта на показалеца PTR форма PTR [16] или 16 [PTR].
За достъп до първоначален елемент на масива (т.е. елемент с индекс нула) стойност може да се използва просто или PTR указател масив. Всеки един от поставените задачи
присвоява първоначална стойност на елемент на масива 2, но най-бързо изпълнена задача * масив = 2 и * PTR = 2, тъй като не се изисква да извърши операция допълнение.
Фигура 3. заделяне на памет за двумерен масив.
Например, препратка към arr2 елементи [1] [2] може да се проведе чрез ptr2 указател обявен в форма INT на * ptr2 = arr2 [0] като лечение ptr2 [1 * 4 + 2] (тук 1 и 2, индексите използвани елемент, 4 и броя на елементите в един ред) или ptr2 [6]. Имайте предвид, че визуално подобно третиране [6] arr2 не е възможно, тъй като индекса с индекса 6 не съществува.
За достъп до елемента arr3 [2] [3] [4] от триизмерната масив също mozhno използването на показалеца, описан като поплавък * ptr3 = arr3 [0] [0] от един индексиране експресия в ptr3 формуляра [3 * 2 + 4 * 3 4] или ptr3 [22].
На указатели може да изпълнява Унарна операция: увеличаване и намаляване. При извършване на операции ++ и - стойност указател се увеличава или намалява с дължината на типа, посочен от стрелката използва.
Бинарните операциите на събиране и изваждане могат да участват показалка и стойността на INT тип. Когато резултатът от тази операция ще бъде указател към типа на източника и стойността му е определен брой елементи е по-голям или по-малък от оригинала.
Стойности на две указатели към един и същ тип могат да бъдат сравнени с експлоатацията ==. . => = Стойностите на указатели се считат само като цели числа, и резултат от сравнението е 0 (фалшива) или 1 (истина).
В този пример, на стойност по-малко от оператора ptr1 ptr2 стойност и следователно [3] = 4 няма да бъде изпълнена.
В C език масив елементи могат да бъдат от всякакъв вид, и по-специално, може да бъде всякакъв вид указатели. Разполагате с няколко примери за използване на указатели.
генериране на програмата обекти, представени на диаграмата на Фигура 4.
Фигура 5. Експонация променливи след операция стр + = 2.
генериране на програмата обекти, представени на диаграмата на Фигура 6.
Фигура 6. Външният вид на двумерен масив от указатели.
Съгласно тази схема, достъп до елемент [0] [0], за да се получи признаците на, р, PA със следните документи: а [0] [0], * а, ** на [0], * р, ** PA , * р [0].
Тя може да бъде представена от схемата показана на Фигура 7.
Фигура 7. Разпределение на указатели към низове.
Благодарение на динамичното разпределение памет за масиви трябва да описват подходящия показалеца и определяне на стойността използвате функцията calloc. Размери масив [10] на елементите на поплавък тип могат да бъдат създадени, както следва:
За създаване на двумерен масив, първо трябва да разпредели памет за масив от указатели към едномерен масив и след това достатъчно памет за едномерни. Да предположим, например, е необходимо да се създаде масив [п] [m], може да се направи с помощта на следната програма фрагмент: