C++: a beginner's Guide, Second Edition


CRITICAL SKILL 4.10: Pointer Expressions



Download 11,33 Mb.
Pdf ko'rish
bet68/194
Sana12.03.2022
Hajmi11,33 Mb.
#491693
1   ...   64   65   66   67   68   69   70   71   ...   194
Bog'liq
C A Beginner\'s Guide 2nd Edition (2003)

CRITICAL SKILL 4.10: Pointer Expressions

Pointers can be used in most C++ expressions. However, some special rules apply. Remember also that 


you may need to surround some parts of a pointer expression with parentheses in order to ensure that 
the outcome is what you desire.
Pointer Arithmetic
There are only four arithmetic operators that can be used on pointers: ++, – –, +, and –. To understand 
what occurs in pointer arithmetic, let p1 be an int pointer with a current value of 2,000 (that is, it 
contains the address 2,000). Assuming 32-bit integers, after the expression
p1++;
the contents of p1 will be 2,004, not 2,001! The reason for this is that each time p1 is incremented, it 
will point to the next int. The same is true of decrements. For example, again assuming that p1 has the 
value 2000, the expression


28 
C++ A Beginner’s Guide by Herbert Schildt 
p1--;
causes p1 to have the value 1996.
Generalizing from the preceding example, the following rules apply to pointer arithmetic. Each time that 
a pointer is incremented, it will point to the memory location of the next element of its base type. Each 
time it is decremented, it will point to the location of the previous element of its base type. In the case 
of character pointers, an increment or decrement will appear as “normal” arithmetic because characters 
are one byte long. However, every other type of pointer will increase or decrease by the length of its 
base type.
You are not limited to only increment and decrement operations. You can also add or subtract integers 
to or from pointers. The expression
p1 = p1 + 9;
makes p1 point to the ninth element of p1’s base type, beyond the one to which it is currently pointing.
Although you cannot add pointers, you can subtract one pointer from another (provided they are both 
of the same base type). The remainder will be the number of elements of the base type that separate 
the two pointers.
Other than addition and subtraction of a pointer and an integer, or the subtraction of two pointers, no 
other arithmetic operations can be performed on pointers. For example, you cannot add or subtract 
float or double values to or from pointers.
To graphically see the effects of pointer arithmetic, execute the next short program. It creates an int 
pointer (i) and a double pointer (f). It then adds the values 0 through 9 to these pointers and displays the 
results. Observe how each address changes, relative to its base type, each time the loop is repeated. 
(For most 32-bit compilers, i will increase by 4s and f will increase by 8s.) Notice that when using a 
pointer in a cout statement, its address is automatically displayed in the addressing format applicable to 
the CPU and environment.

Download 11,33 Mb.

Do'stlaringiz bilan baham:
1   ...   64   65   66   67   68   69   70   71   ...   194




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