C++ за 21 день седьмое издание



Download 1,38 Mb.
bet132/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   128   129   130   131   132   133   134   135   ...   437
Bog'liq
word1

Г: #include



  1. using namespace std;





  1. int main()



4 • {



  1. const int ARRAY_LEN = 5;






":


3:


// Инициализированный статический массив из 5 целых чисел int MyNumbers[ARRAY_LEN] = {24, -1, 365, -999, 2011};

  1. .

1 3 : // Указатель, инициализированный первым элементом массива





  1. int* pNumbers = MyNumbers;



13: cout « "Displaying array usingpointer syntax,operator*"



    1. endl;




  1. for (int Index = 0; Index < ARRAY_LEN; ++Index)



15: cout << "Element " « Index « " = " « * (MyNumbers + Index)



  1. endl;

16:


1“: cout <<


"Displaying array using pointer with array syntax, operator[]"



    1. endl;




  1. for (int Index = 0; Index < ARRAY_LEN; ++Index)



19: cout « "Element " « Index « " = " « pNumbers[Index]



  1. endl;



return 0;

186 ЗАНЯТИЕ 8. Указатели и ссылки


Результат


Displaying array using pointer syntax, operator*



Element

0

=

24

Element

1

=

-1

Element

2

=

365

Element

3

=

-999

Element

4

= 2011




Element

0

=

24

Element

1 =

-1

Element

2

= 365

Element

3

=

-999

Element

4

=

2011



Анализ

Приложение содержит статический массив из пяти целых чисел, инициализированных пятью исходными значениями в строке 8. Приложение отображает содержимое этого мас­ сива, используя два альтернативных подхода: с использованием переменной типа массива





    1. оператора косвенного доступа (*) в строке 15, а также с использованием переменной указателя и оператора массива ([ ]) в строке 19.

Таким образом, эта программа свидетельствует, что и массив MyNumbers, и указатель pN um bers фактически демонстрируют поведение указателя. Другими словами, объявле­ ние массива подобно созданию указателя для работы в пределах фиксированного диапазо­ на памяти. Обратите внимание, что можно присвоить массив указателю, как в строке 11, но нельзя присвоить указатель массиву, поскольку массив имеет статической характер,

  1. следовательно, не может быть 1-значением.

Не забывайте, что указатели, созданные динамически при помощи оператора new, следует освободить при помощи оператора delete, даже если вы исполь­ зовали такой синтаксис, как у статического массива.


Если вы забудете, то произойдет утечка памяти, а это плохо.


Наиболее распространенные ошибки при использовании указателей

Язык C++ позволяет резервировать память динамически, чтобы использование памяти вашим приложением было оптимальным. В отличие от более новых языков, таких как C# и Java, работающих на базе среды времени выполнения, язык C++ не использует ав­ томатический сборщик мусора, который очищает зарезервированную вашей программой память, когда она уже не используется. Поскольку указатели способны на разные трюки, у программиста есть масса возможностей сделать ошибки.



Наиболее распространенные ошибки при использовании указателей

1 8 7



Утечки памяти

Вероятно, это одна из самых распространенных проблем приложений C++: чем доль­ ше они выполняются, тем больший объем памяти используют и замедляют систему. Это, как правило, случается, когда программист не гарантировал в приложении освобождение памяти, зарезервированной динамически оператором new, при помощи вызова оператора d e le te по завершении ее использования.


Это задача программиста, т.е. ваша, обеспечить освобождение всей зарезервированной вашим приложением памяти. Кое-чему никогда нельзя позволять случаться:





Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   128   129   130   131   132   133   134   135   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish