ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ | Microsoft Learn
- Π‘ΡΠ°ΡΡΡ
- Π§ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 3Β ΠΌΠΈΠ½
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ Π·Π°Π΄Π°Π΅Ρ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
declarator
:
βpointer
Π½Π΅ΠΎΠ±.direct-declarator
direct-declarator
:
βidentifier
β(
declarator
)
βdirect-declarator
[
constant-expression
opt]
βdirect-declarator
(
parameter-type-list
)
βdirect-declarator
(
identifier-list
opt)
pointer
:
β*
type-qualifier-list
Π½Π΅ΠΎΠ±.
β*
type-qualifier-list
Π½Π΅ΠΎΠ±.pointer
type-qualifier-list
:
βtype-qualifier
βtype-qualifier-list
type-qualifier
Π·Π°Π΄Π°Π΅Ρ type-specifier
ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ, ΡΠΈΠΏΠΎΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌ. (ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠΈΠΏΠΎΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΎΡΠΎΠ².)
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ type-specifier
void
, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΈΠΏΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° void
» ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ void *
. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° void
, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΈΠΏ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π½ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. (ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° char *
ΠΈ ΡΠΈΠΏΠ° void *
ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡΠΌΠΈ Π±Π΅Π· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².) Π’Π°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
ΠΠΎΠΆΠ΅Ρ type-qualifier
Π±ΡΡΡ Π»ΠΈΠ±ΠΎ const
, Π»ΠΈΠ±ΠΎ volatile
, Π»ΠΈΠ±ΠΎ ΠΈ ΡΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ (const
), ΠΈΠ»ΠΈ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (volatile
). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ²Π°Ρ
const
ΠΈ volatile
ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ ΠΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΈΠΏΠΎΠ².
ΠΠΌΡ declarator
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ declarator
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ², ΡΠΈΠΏ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π±ΡΠ» ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΠΈΠ².
ΠΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ ΡΡΡΡΠΊΡΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π³Π° union, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΡΠΈΠΌΠ΅ΡΡ
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
char *message; /* Declares a pointer variable named message */
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ message
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ char
ΡΠΈΠΏΠΎΠΌ .
int *pointers[10]; /* Declares an array of pointers */
ΠΠ°ΡΡΠΈΠ² pointers
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 10 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²; ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ int
ΡΠΈΠΏΠΎΠΌ .
int (*pointer)[10]; /* Declares a pointer to an array of 10 elements */
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ pointer
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Ρ 10 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ int
.
int const *x; /* Declares a pointer variable, x, to a constant value */
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ x
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π» Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ int
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ.
const int some_object = 5 ; int other_object = 37; int *const y = &fixed_object; int volatile *const z = &some_object; int *const volatile w = &some_object;
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ y
Π² ΡΡΠΈΡ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΡ
ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° int
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½ΠΎ ΡΠ°ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Π°Π΄ΡΠ΅Ρ fixed_object
. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ z
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π½ΠΎ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° int
ΠΎΠ±ΡΠ΅ΠΊΡ , Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠΏΠΈΡΠ°ΡΠ΅Π»Ρ volatile
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ, Ρ
ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ const int
ΠΎΠ±ΡΠ΅ΠΊΡΠ° , Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ z
, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ w
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΈ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
struct list *next, *previous; /* Uses the tag for list */
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (next
ΠΈ previous
), ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΡΠΈΠΏ list
ΡΡΡΡΠΊΡΡΡΡ . ΠΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ list
ΡΠΈΠΏΠ° ΡΡΡΡΠΊΡΡΡΡ (ΡΠΌ. ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ), Π΅ΡΠ»ΠΈ list
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅.
struct list { char *token; int count; struct list *next; } line;
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ line
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ list
. Π’ΠΈΠΏ list
ΡΡΡΡΠΊΡΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° char
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΎΡΠΎΠΉ β int
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π° ΡΡΠ΅ΡΠΈΠΉ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° Π΄ΡΡΠ³ΡΡ list
ΡΡΡΡΠΊΡΡΡΡ.
struct id { unsigned int id_no; struct name *pname; } record;
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ record
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ id
ΡΡΡΡΠΊΡΡΡΡ . pname
ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ name
. ΠΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ name
ΡΠΈΠΏΠ°.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΎΡΡ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² C++
ΠΠ΄ΠΌΠΈΠ½ ΡΠ°ΠΉΡΠ° Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° C++ ΠΡΠΎΡΠΌΠΎΡΡΠΎΠ²: 454
User Rating:Β 0Β /Β 5
Π Π΅ΠΉΡΠΈΠ½Π³
(0)
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΒ Π² ΡΠ·ΡΠΊΠ΅ C++. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (Π°Π½Π³Π». pointer) Π² C++ — ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ Π½Π°ΡΠ½ΡΡΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° C++, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ Π²ΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅:
#include <iostream> using namespace std; int main() { // ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ a, b ΠΈ c int a = 10, b = 20, c = 30; // ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ p int* p; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ cout << "The value of 'a' is: " << a << endl; cout << "The value of 'b' is: " << b << endl; cout << "The value of 'c' is: " << c << endl; // ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a p = &a; cout << "Pointer address is currently " << p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a) cout << "Pointer value is currently " << *p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ" ΠΏΠΎ ΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ p // ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ b p = &b; cout << "Pointer address is currently " << p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ b) cout << "Pointer value is currently " << *p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ" ΠΏΠΎ ΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ p // ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ c p = &c; cout << "Pointer address is currently " << p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ c) cout << "Pointer value is currently " << *p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ" ΠΏΠΎ ΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ p }
Π― ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ½Π°Π±Π΄ΠΈΠ» ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π±ΡΠ»Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π°, Π½ΠΎ Π²ΡΡ ΠΆΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π»ΡΡΡ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠ½Π°ΡΠ°Π»Π΅ ΠΌΡ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΡΡΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ a, b ΠΈ c, ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 10, 20 ΠΈ 30, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ°Π»ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ p. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°Π½ ΡΠΈΠΏ int*, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int». ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ p
ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π΅ΠΉ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ pΒ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Ρ.Π΅. ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠΎ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅. ΠΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π½Π΅Π»ΡΠ·Ρ: Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎ Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ C++ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ,Β Π° ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ Π²Π°Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ.ΠΠ°Π»ΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ a, b ΠΈ c Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ p. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ p Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a:
p = &a;
ΠΡΠΈΠΌ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡ ΠΊΠ°ΠΊ Π±Ρ «Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ p Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ a. ΠΠ°Π»ΡΡΠ΅ ΠΈΠ΄ΡΡ Π΄Π²Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΡΡΠΎΠΊΠΈ Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π³Π΄Π΅ ΠΌΡ Π²Π½Π°ΡΠ°Π»Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ p, Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ pΒ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌΒ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°-Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ p, Ρ.Π΅. *p:
cout << "Pointer address is currently " << p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a) cout << "Pointer value is currently " << *p << endl; // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ" ΠΏΠΎ ΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ p
Π’Π°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ *p Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΌΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.ΠΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π΅Π»Π°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ «ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΉΠΊΡ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ p Π½Π° Π΄Π²Π΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ b ΠΈ c ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
The value of 'a' is: 10
The value of 'b' is: 20
The value of 'c' is: 30
Pointer address is currently 00CFF91C
Pointer value is currently 10
Pointer address is currently 00CFF910
Pointer value is currently 20
Pointer address is currently 00CFF904
Pointer value is currently 30
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ a, b ΠΈ c
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² ΡΠ·ΡΠΊΠ΅ C++:
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π° Π½Π΅ ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅.
- ΠΠ»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»-Π·Π²ΡΠ·Π΄ΠΎΡΠΊΡ ( * ) ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ x Π½Π° ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ char, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ: char* x;
- ΠΠ»Ρ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»-Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠ° ( * ), ΠΈΠ΄ΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ x, ΡΠΎ Π΅Ρ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ *x
- ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° ( Ρ ΠΏΠΎΠΌΠΎΡΡΡΒ & ) Π½Π° ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΠ°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π°Β Π΄ΡΡΠ³Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ y, ΠΈ Π΅Ρ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ char, ΡΠΎΒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ x ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: x = &y;
- ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡΒ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠ·ΡΠΊΠ΅ C++:
- ΠΠ±ΡΡΠ²ΠΈΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ x, y ΠΈ z Ρ ΡΠΈΠΏΠΎΠΌ double. ΠΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° ΡΠ²ΠΎΠΉ Π²ΠΊΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ px, py, pz ΠΈ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΈ Π½Π° x, y ΠΈ z, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ px, py, pz (Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ) Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ x, y ΠΈ z Ρ ΠΏΠΎΠΌΠΎΡΡΡΒ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΒ px, py ΠΈ pzΒ ΠΈ ΠΈΡ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ pz Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x, Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ px ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ z. ΠΡΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ px ΠΈ pz.
- C++
- ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ C++
- ΠΠ°Π·Π°Π΄
- ΠΠΏΠ΅ΡΠ΅Π΄
go — ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΠ°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ
ΡΠΏΡΠΎΡΠΈΠ»
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ 3 Π³ΠΎΠ΄Π°, 3 ΠΌΠ΅ΡΡΡΠ° Π½Π°Π·Π°Π΄
ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ 628 ΡΠ°Π·
Π’ΡΡΠ΄Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, Π½ΠΎ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠΎ-ΡΠΎ , ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅:
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ( "Π€ΠΠ’" "Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ" ) ΡΠΈΠΏ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ { ΠΡΠΈΠΌΠ΅Ρ() } Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ StructThatImplementsInterface { } func (i *StructThatImplementsInterface) ΠΡΠΈΠΌΠ΅Ρ() { } Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ StructThatHasInterface { Ρ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ } ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ () { sameInterface := &StructThatImplementsInterface{} struct1 := StructThatHasInterface{i: ΡΠΎΡ ΠΆΠ΅ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ} struct2 := StructThatHasInterface{i: ΡΠΎΡ ΠΆΠ΅ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ} ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ(&struct1) ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ(&struct2) } func TheProblemIsHere(s *StructThatHasInterface) { fmt. Printf("Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Printf: %p \n", s.i) fmt.Printf("Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Usafe: %v \n", unsafe.Pointer(&s.i)) }
https://play.golang.org/p/HoC5_BBeswA
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ:
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Printf: 0x40c138 Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Usafe: 0x40c140 Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Printf: 0x40c138 Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΡ Usafe: 0x40c148
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Printf
ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π° StructThatHasInterface
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ sameInterface
). ΠΠ΄Π½Π°ΠΊΠΎ unsafe.Pointer()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΡΠΎ ΠΈ Printf
Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ fmt
, Π° ΠΎΡΡΠ°Π·ΠΈΡΡ
Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ?
- go
- Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ
4
Π ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Go Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΡΠ»ΠΎΠ². ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ»ΠΎΠ²Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠΎΡΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΠΊΠ°ΠΊ uintptr
:
u := (*[2]uintptr)(unsafe.Pointer(&s.i))[1]
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΈ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ:
u := Reflect.ValueOf(s.i).Pointer()
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Google
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Facebook
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π³ΠΎΡΡΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π³ΠΎΡΡΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ
Π‘ΡΡΠ΅Π»ΠΊΠ° | ΠΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈ Π²ΡΠ±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠΎΠ½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅, Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΏΠ°Π»Π΅Ρ ΠΏΠΎ ΡΡΠ΅ΠΊΠΏΠ°Π΄Ρ ΠΈΠ»ΠΈ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΌΡΡΡ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π±ΡΠ»ΠΎ Π»ΡΡΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ²Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΌΠ΅Π½Ρ Apple > Β«Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΒ», Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏΒ» Π½Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠΊΡΠ°Π½Β» ΡΠΏΡΠ°Π²Π°, Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΡΒ». (ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΈΡΡ Π²Π½ΠΈΠ·.) ΠΡΠΊΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΌΠ΅Π½Ρ | ||||||||||
Poof | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΡΡΠ΅Π·Π½Π΅Ρ, ββΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠΏΡΡΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ, Π΅Π³ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. | ||||||||||
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΡΠ΅ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΡ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Option, ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π° Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅. | ||||||||||
ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ Option-Command, ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. | ||||||||||
ΠΠ²ΡΡΠ°Π²ΡΠΎΠ²Π°Ρ Π±Π°Π»ΠΊΠ° | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ ΡΠ΅ΠΊΡΡΠ°. | ||||||||||
ΠΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠΈΠ΅ | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. | ||||||||||
Π£ΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΡΡΠΊΠ° | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. | ||||||||||
ΠΡΠΊΡΡΡΠ°Ρ ΡΡΠΊΠ° | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. | ||||||||||
ΠΠ°ΠΊΡΡΡΠ°Ρ ΡΡΠΊΠ° | ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΠ΅ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π»Π΅Π²ΠΎ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π²Π»Π΅Π²ΠΎ. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²ΠΏΡΠ°Π²ΠΎ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²ΠΏΡΠ°Π²ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π²Π΅ΡΡ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ΅. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π½ΠΈΠ· | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π½ΠΈΠ·. | ||||||||||
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π²Π΅ΡΡ ΠΈ Π²Π½ΠΈΠ·. | ||||||||||
ΠΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠΈΠ΅ Π²ΡΠ±ΠΎΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° ΡΠΊΡΠ°Π½Π° | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π°. | ||||||||||
Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΠΎΠΊΠ½Π° ΠΈ ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΌΠ΅ΡΡ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π° ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΌΠ΅Π½Ρ. | ||||||||||
ΠΠ°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ | Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
|