Указатели в C ++ е променлива, която съдържа адреса на друга променлива в c ++. Адресът се съхранява в променливата на указателя и помага при изпълнението на обаждане по препратка.
Следните указания ще бъдат обхванати в тази статия,
- Указатели
- Указатели и масиви
- Нулеви указатели
- Празни указатели
- Аритметична операция на показалеца
- Показалец към указател
- Показалец към Функции
Започвайки с тази статия за указатели на C ++
Синтаксис:
тип данни * име на указател ПРИМЕР: int * ptr
- Променливата на указателя има знак * преди името си.
- Показалецът се нарича още локатор или индикатор.
Използване на показалеца:
- Динамично разпределение на паметта
- В различни програми от масиви, структура и функции
Ето примерен код:
#include използвайки пространство от имена std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' }
Изход:
Обяснение:
В горната програма показваме основната работа на показалеца. Имаме целочислена променлива num със стойност 17. Имаме променлива ptr от тип int. Присвояваме адреса на num на показалеца ptr.
Първо отпечатваме стойността на ptr, това е адресът. След това отпечатваме числовата стойност и накрая отпечатваме стойността на мястото, държано от показалеца ptr.
Продължавайки с тази статия за указатели на C ++
Указатели и масиви:
Можем да разгледаме първия елемент на масив като указател, тъй като името на масива съдържа адреса на първия елемент. Можем да използваме указател по следния начин.
Ето примерния код:
заместване срещу претоварване на c ++
#include използвайки пространство от имена std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] }
Изход:
Обяснение:
В горната програма показваме основната работа на указател с масив. Имаме масив arr със стойности 5,10,20. Имаме променлива на указателя ptr от тип int. Присвояваме адреса на arr на указателя ptr.
Първо отпечатваме стойността на ptr [0], която е първият елемент от масива. След това отпечатваме съответно втория и третия елемент. Тъй като елементите на масива се съхраняват последователно, така указателят може да получи достъп до другото местоположение на масива чрез увеличаване.
как да повиша число до степен в Java
Продължавайки с тази статия за указатели на C ++
Нулеви указатели:
Има тип указатели, които нямат стойност и съдържат нулева стойност
Пример :
int * ptr = NULL
Те са много полезни в структури от данни като свързан списък.
Продължавайки с тази статия за указатели на C ++
Празни указатели:
Това са тип указатели, които нямат тип връщане.
Продължавайки с тази статия за указатели на C ++
Аритметична операция на показалеца:
Различни операции могат да се извършват върху указатели. Ето някои важни видове.
- увеличен (++)
- намален (-)
- разлика между два указателя (p1-p2)
- добавяне на цяло число към указател (+ или + =)
- изваждане на цяло число от указател (- или - =)
Ето код за демонстрация на някои от тези операции:
#include използвайки пространство от имена std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr за (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } }
Изход:
Обяснение:
Демонстрираме проста аритметична операция на нарастване на променливата на показалеца е показана в горната програма.
Продължавайки с тази статия за указатели на C ++
Показалец към указател:
В този тип система има два указателя. Първият указател сочи към втория показалец, а вторият сочи към променливата, която държи стойността.
какви са екземплярите в java
Ето примерен код:
#include използвайки пространство от имена std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 }Изход:
Продължавайки с тази статия за указатели на C ++
Показалец към функции:
Това е начин за предаване на указатели към функции. Параметърът на функцията трябва да бъде деклариран като тип указател. Това е показано в кода по-долу,
#include използвайки пространство от имена std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg }
Изход
Ето как предаваме указател на функция.
Така стигнахме до края на тази статия за „Указатели в C ++“. Ако искате да научите повече, разгледайте от Edureka, доверена компания за онлайн обучение. е предназначен да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.