Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 22

Автор C. Π‘ΠΎΡ‡ΠΊΠΎΠ²

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°Π΄Π°Π½ΠΎ абстрактноС имя Ρ‚ΠΈΠΏΠ° для указатСля Π½Π° массив ΠΈΠ· пяти элСмСнтов Ρ‚ΠΈΠΏΠ° int.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°Π΄Π°Π½ΠΎ абстрактноС имя Ρ‚ΠΈΠΏΠ° для указатСля Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΡƒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° int.

Π’ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° PG, объявлСнного посрСдством typedef Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.8.2, Π·Π°Π΄Π°Π½ΠΎ абстрактноС имя Ρ‚ΠΈΠΏΠ° "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру с Ρ‚Π΅Π³ΠΎΠΌ club".

Π’Π«Π ΠΠ–Π•ΠΠ˜Π―

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” это комбинация ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ порядок вычислСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ дСйствия, выполняСмыС Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Π½Π΄ Π² ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС являСтся константой ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ выраТСния Ρ‚Π°ΠΊΠΆΠ΅ прСдставляСт собой Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… языков программирования высокого уровня, Π² языкС Π‘ΠΈ присваиваниС само являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Как любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, присваиваниС ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” это Ρ‚ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π»Π΅Π²Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ. Помимо простого присваивания, Π² языкС Π‘ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ составныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ своими ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния выраТСния зависит ΠΎΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ опрСдСляСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом называСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ΅ вычислСниСм Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ эффСкта зависит ΠΎΡ‚ порядка вычислСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ².

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставляСмоС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² рядС случаСв ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ (явно ΠΈΠ»ΠΈ нСявно) ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² описаны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.7.

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹

ΠžΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ выраТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ константа, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ символьная строка. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ посрСдством Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ выраТСния β€” Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, индСксноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнта. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ выраТСния, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ содСрТащСго ΠΈΡ… выраТСния. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ΠΈΡ… с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ опСрациями ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π½ΠΎΠ²Ρ‹Ρ…, Π±ΠΎΠ»Π΅Π΅ слоТных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ содСрТащСго ΠΈΡ… выраТСния, ΠΈ Ρ‚.Π΄. Π§Π°ΡΡ‚ΡŒ выраТСния, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Ρ‚Π°ΠΊΠΆΠ΅ рассматриваСтся ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ выраТСния. Если всС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ константами, ΠΎΠ½ΠΎ называСтся константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.3 "ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ" Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ допустимыС Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ пСрСчислимый Ρ‚ΠΈΠΏ являСтся подмноТСством Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈ Π΅Π³ΠΎ значСния ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² выраТСниях ΠΊΠ°ΠΊ значСния Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ явно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ посрСдством ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ привСдСния Ρ‚ΠΈΠΏΠ° (см. Ρ€Π°Π·Π΄Π΅Π» 4.7.2). Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ привСдСния Ρ‚ΠΈΠΏΠ° само рассматриваСтся ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ содСрТащСго Π΅Π³ΠΎ выраТСния.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ассоциируСтся Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΈ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°.

2) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ пСрСчислимого Ρ‚ΠΈΠΏΠ° прСдставляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ константы ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ этому Ρ‚ΠΈΠΏΡƒ списка пСрСчислСния. Π’ΠΈΠΏ этого значСния—int.

3) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ структуры ΠΈΠ»ΠΈ объСдинСния прСдставляСт ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, спСцифицированных этой структурой ΠΈΠ»ΠΈ объСдинСниСм.

4) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ указатСля прСдставляСт адрСс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° спСцифицированного Ρ‚ΠΈΠΏΠ°. Если ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ присвоСно Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния, Ρ‚ΠΎ использованиС Π΅Π³ΠΎ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ выявляСмой ошибкС. Π’ языкС Π‘ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ адрСс NULL (ноль), поэтому ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ NULL Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

5) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ массива прСдставляСт массив, Π½ΠΎ Ссли Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ трСбуСтся скалярная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, Ρ‚ΠΎ прСдставляСт адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта этого массива. Π’ΠΈΠΏ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΈΠΏ элСмСнтов массива. Из этого слСдуСт, Ρ‡Ρ‚ΠΎ использованиС Π² выраТСниях массивов ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях способ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ β€” Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΊ элСмСнту массива β€” Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΈ опрСдСляСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ стилСм программирования. Π­Ρ‚ΠΎ родство ΠΌΠ΅ΠΆΠ΄Ρƒ массивами ΠΈ указатСлями являСтся сущСствСнной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ языка Π‘ΠΈ, Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования высокого уровня.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ массивами ΠΈ указатСлями. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ячСйку памяти, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для хранСния машинного адрСса (Π² частности, адрСса ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ массива). Массив ΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ячССк памяти, сколько элСмСнтов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии. Волько Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ массив прСдставляСтся своим адрСсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эквивалСнтСн ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, адрСс массива являСтся постоянной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, поэтому, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° указатСля, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ массива Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания.

6) Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚.Π΅. адрСс Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π’ΠΈΠΏ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° β€” функция, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ спСцифицированного для Π½Π΅Π΅ Ρ‚ΠΈΠΏΠ°. Однако Ссли Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ трСбуСтся скалярная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° считаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. АдрСс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ измСняСтся Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ-константС соотвСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ константы. Π’ΠΈΠΏΡ‹ констант ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 1.2. Бимвольная константа ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int. ЦСлая константа ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²: int, long, unsigned int ΠΈΠ»ΠΈ unsigned long, Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ†Π΅Π»ΠΎΠ³ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ спСцифицировано Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ double (Π² вСрсии 2.0 БП Π’Π‘ допустимы Ρ‚Π°ΠΊΠΆΠ΅ константы Ρ‚ΠΈΠΏΠ° float). Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ массив символов; ΠΎΠ½ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.2.3.

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки

Бимвольная строка состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π­Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прСдставляСтся Π² памяти ΠΊΠ°ΠΊ массив элСмСнтов Ρ‚ΠΈΠΏΠ° char. Бимвольная строка прСдставляСт Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ адрСс этого массива, Ρ‚. Π΅. адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта строки.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ символьная строка прСдставляСт адрСс массива, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² контСкстС, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡΡΡŒ ΠΏΡ€ΠΈ этом Ρ‚Π΅ΠΌ ΠΆΠ΅ ограничСниям. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ адрСс символьной строки являСтся постоянной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, символьная строка Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания.

Π’Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Бинтаксис:

<Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅> (<список-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ>)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ <выраТСния> Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ адрСс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. <Бписок Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ> содСрТит выраТСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ соотвСтствуСт фактичСскому Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Бписок Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым, Ссли функция Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ скобок ΠΈ Π² этом случаС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ β€” Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ значСния. Если объявлСн Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния void, Ρ‚ΠΎ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ void. Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» Π½Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return, содСрТащСго Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ 6.4 Π΄Π°Π½Π° Π±ΠΎΠ»Π΅Π΅ полная информация ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ выраТСния

Бинтаксис:

<Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1>[<Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2>]

Π—Π΄Π΅ΡΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΡΠ²Π»ΡΡŽΡ‚ΡΡ символами языка Π‘ΠΈ, Π° Π½Π΅ элСмСнтами описания.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСксного выраТСния находится ΠΏΠΎ адрСсу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСтся ΠΊΠ°ΠΊ сумма Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ <выраТСния1> ΠΈ <выраТСния2>. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ указатСля Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ массива, Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Однако Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ синтаксиса состоит лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠΌΠ΅Π»ΠΎ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ; порядок ΠΆΠ΅ слСдования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π·Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½.