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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 53

Автор ΠœΡŽΡ€Ρ€Π΅ΠΉ Π₯ΠΈΠ»Π»

список_описаний_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: список_описаний_ΠΏΠ°Ρ€Π°ΠΌ opt ... opt

список_описаний_ΠΏΠ°Ρ€Π°ΠΌ: список_описаний_ΠΏΠ°Ρ€Π°ΠΌ , описаниС_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° описаниС_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

описаниС_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: спСцификаторы_описания ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ спСцификаторы_описания ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ спСцификаторы_описания абстракт_ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ спСцификаторы_описания абстракт_ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Если список_описаний_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² заканчиваСтся ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡Π΅ΠΌ, Ρ‚ΠΎ ΠΎ числС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² извСстно лишь, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ ΠΈΠ»ΠΈ большС числа спСцифицированных Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²; Ссли ΠΎΠ½ пуст, Ρ‚ΠΎ функция Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ВсС описния для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π² Ρ‚ΠΈΠΏΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² числС ΠΈ Ρ‚ΠΈΠΏΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Бписок_описаний_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ прСобразования фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ для контроля присвавания ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Если Π² описании ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π²Π·ΠΎΠ²Π°Ρ…, Π³Π΄Π΅ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ стоящиС Π² хвостС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌΠΈ описаними. Однако, описаниС ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… описаниях.

По ТСланию ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°ΠΊ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Если ΠΎΠ½ присутствуСт Π² описании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ сразу Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· области видимости. Если ΠΎΠ½ присутствуСт Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (#10), Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π½ΡƒΠ΅Ρ‚ Ρ„Π°Ρ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

Если D1 ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄

D[ константноС_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ]

ΠΈΠ»ΠΈ

D[]

Ρ‚ΠΎ Ρ‚ΠΈΠΏ содСрТащСгося ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π΅ΡΡ‚ΡŒ Β«... массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° TΒ». Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΅ΡΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²ΠΎ врСмя компиляции, ΠΈ Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ int. (ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ выраТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² #12.) Если подряд ΠΈΠ΄ΡƒΡ‚ нСсколько спСцификаций «масив ΠΈΠ·Β», Ρ‚ΠΎ создаСтся ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив; константноС Π²Ρ‹Ρ€Π°ΠΆΠ½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‡Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎΡ‚ пропуск ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° массив являСтся внСшним, ΠΈ настоящСС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚Ρ€ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ, находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π·Π° опсатСлСм слСдуСт инициализация. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€, вычислСнный исходя ΠΈΠ· числа Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов.

Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ построСн ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· основных Ρ‚ΠΈΠΏΠΎΠ², ΠΈΠ· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠ· структуры ΠΈΠ»ΠΈ объСдинСния ΠΈΠ»ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива (для получСния ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива).

НС всС возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяСт ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ синтаксис, допустимы. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅: функция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ массив ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, хотя ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΡƒΠΊΠ·Π°Ρ‚Π΅Π»ΠΈ Π½Π° эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹; Π½Π΅ сущСствуСт массивов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, хотя ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ массивы ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

8.4.1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ОписаниС

int i; int *pi; int f (); int *fpi (); int (*pif) ();

описываСт Ρ†Π΅Π»ΠΎΠ΅ i, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pi Π½Π° Ρ†Π΅Π»ΠΎΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Ρ†Π΅Π»ΠΎΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fpi , Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΠΎΠ΅, ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pif Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Ρ†Π΅Π»ΠΎΠ΅. ОсбСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ послСдниС Π΄Π²Π΅. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° *fpi() Π΅ΡΡ‚ΡŒ *(fpi()), ΠΊΠ°ΠΊ прСдполагаСтся Π² описании, ΠΈ Ρ‚Π° ΠΆΠ΅ конструкция трСбуСтся Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fpi, ΠΈ Π·Π°Ρ‚Π΅ΠΌ использовниС косвСнного обращСния Ρ‡Π΅Ρ€Π΅Π· (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅. Π’ описатСлС (*pif)() Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ скобки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π΄Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π·Π°Ρ‚Π΅ΠΌ вызываСтся. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ f ΠΈ fpi описаны ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° pif ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π²Π°ΡŽΡ‰Π°Ρ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ОписаниС

const a = 10, *pc = amp;a, *const cpc = pc; int b, *const cp = amp;b;

описываСт a: Ρ†Π΅Π»ΡƒΡŽ константу, pc: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ константу, cpc: константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΡƒΡŽ константу, b: Ρ†Π΅Π»ΠΎΠ΅ ΠΈ cp: константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ†Π΅Π»ΠΎΠ΅. ЗначСния a, cpc ΠΈ cp Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pc ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ cp. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ нСдопустимых Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

a = 1; a++; *pc = 2; cp = amp;a; cpc++;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ допустимых Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

b = a; *cp = a; pc++; pc = cpc; ОписаниС

fseek (FILE*,long,int);

описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΡƒΡŽ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π½Π΅ Π·Π°Π΄Π°Π½, ΠΎΠ½ прнимаСтся int (#8.2). ОписаниС

point (int = 0,int = 0);

описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ€ΠΎΠ², с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ с двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° int. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

point (1,2); point (1); point ();

ОписаниС

printf (char* ... );

описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ числом ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр

printf (Β«hello, worldΒ»); printf (Β«a=%d b=%dΒ»,a,b);

Однако, всСгда Π΅Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ char*.

ОписаниС

float fa[17], *afp[17];

описываСт массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ массив ΡƒΠΊΠ·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†,

static int x3d[3][5][7];

описываСт массив Ρ†Π΅Π»Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x6x7. БовсСм ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ: x3d являСтся массивом ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…; ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… являСтся массивом ΠΈΠ· пяти массивов; ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· послСдних массивов являСтся массивом ΠΈΠ· сСми Ρ†Π΅Π»Ρ‹Ρ…. ПоялСниС ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ x3d, x3d[i], x3d[i][j], x3d[i][j][k] ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

8.4.2 ΠœΠ°ΡΡΠΈΠ²Ρ‹, Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ появляСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° массива, ΠΎΠ½ прСобразуСтся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива. Из-Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ массивы Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ lvalue. По ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ опСрация индСксирования [] интСрпрСтируСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ E1[E2] ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ *((E1)+(E2)). Π’ силу ΠΏΡ€Π°Π²ΠΈΠ» прСобразования, примСняСмых ΠΊ +, Ссли E1 массив ΠΈ E2 Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΎ E1[E2] отностится ΠΊ E2-ΠΎΠΌΡƒ Ρ‡Π»Π΅Π½Ρƒ E1. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, нСсмотря Π½Π° Ρ‚Π°ΠΊΠΎΠ΅ проявлСниС асиммСтрии, индСксированиС являСтся ΠΊΠΎΠΌΠΌΡƒΡ‚Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.

Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ сообразным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ примСняСтся Π² случаС ΠΌΠ½Π³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Если E являСтся n-ΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом Ρ€Π°Π½Π³Π° i* j*...*k, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ E прСобразуСтся Π² ΡƒΠΊΠ°Π·Ρ‚Π΅Π»ΡŒ Π½Π° (n-1)-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ€Π°Π½Π³Π° j*...*k. Если ΠΊ этому ΡƒΠΊΠ·Π°Ρ‚Π΅Π»ΡŽ, явно ΠΈΠ»ΠΈ нСявно, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ индСксирования, примняСтся опСрация *, Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся (n-1)-ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам Ρ‚ΡƒΡ‚ ΠΆΠ΅ прСобразСтся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

Рассмотрим, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

int x[3][5];

Π—Π΄Π΅ΡΡŒ x – массив Ρ†Π΅Π»Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3*5. Когда x Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ½ прСобразуСтся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ…) 5 – элСмСнтный массив ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ…. Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ x[i], ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ экввалСнтно *(x+i), x сначала прСобразуСтся, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ сказано, Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π·Π°Ρ‚Π΅ΠΌ i прСобразуСтся ΠΊ Ρ‚ΠΈΠΏΡƒ x, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сбя ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ i Π½Π° Π΄Π»ΠΈΠ½Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‚Π΅Π»ΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· 5 Ρ†Π΅Π»Ρ‹Ρ…. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ косвСнная адрСсация для получСния массива (ΠΈΠ· 5 Ρ†Π΅Π»Ρ‹Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ прСобразуСтся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ…. Если Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ индСкс, снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€; Π½Π° этот Ρ€Π°Π· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Ρ†Π΅Π»ΠΎΠ΅.

ИмСнно ΠΈΠ· всСго этого проистСкаСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ массивы Π² Π‘++ хранятся строкообразно (быстрСС всСго измСняСтся послСдний индСкс), ΠΈ Ρ‡Ρ‚ΠΎ Π² описании ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ объСм памяти, ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Π΅ΠΌΡ‹ΠΉ массивом, Π½ΠΎ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€Π³ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ Π² вычислСниях индСкса.

8.5 Описания Классов

Класс Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ. Π•Π³ΠΎ имя становится typedef-имя (см. #8.8), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано Π΄Π°ΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого спСцификатора класса. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса состоят ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‡Π»Π΅Π½ΠΎΠ².

спСцификатор_класса: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ_класса (* список_Ρ‡Π»Π΅Π½ΠΎΠ² opt *) Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ_класса (* список_Ρ‡Π»Π΅Π½ΠΎΠ² opt public : спсок_Ρ‡Π»Π΅Π½ΠΎΠ² opt *)

Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ_класса: сост ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ opt сост ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ opt : public opt typedef-имя

сост: class struct union

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ функциями (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², см. #8.5.3). ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, см. #8.5.11.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° являСтся классом, всС Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅, см. #8.5.9. ОбъСдинСниС являСтся структурой, содСрТащСй Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‡Π»Π΅Π½, см. #8.5.13. Бписок_Ρ‡Π»Π΅Π½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ·Π΅ΠΉ (8.5.10) ΠΈ Ρ‡Π»Π΅Π½Ρ‹ Π²ΠΈΠ΄Π°: Π΄Π°Π½Π½Ρ‹Π΅, фунция, класс, пСрСчислСниС, ΠΏΠΎΠ»Π΅(#8.5.13). Бписок_Ρ‡Π»Π΅Π½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ описания, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ Ρ‡Π»Π΅Π½ΠΎΠ², см. #8.5.9.

список_Ρ‡Π»Π΅Π½ΠΎΠ²: описаниС_Ρ‡Π»Π΅Π½Π° список_Ρ‡Π»Π΅Π½ΠΎΠ² opt описаниС_Ρ‡Π»Π΅Π½Π°: спСцификаторы_описания opt ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ_Ρ‡Π»Π΅Π½Π° ; ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ; opt ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ_Ρ‡Π»Π΅Π½Π°: ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ opt : константноС_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Π§Π»Π΅Π½Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ классовыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ описанных классов. Π’ частности, класс cl Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса cl, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса cl. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ описания структуры:

struct tnode (* char tword[20]; int count; tnode *left; tnode *right; *);

содСрТащСй массив ΠΈΠ· 20 символов, Ρ†Π΅Π»ΠΎΠ΅ ΠΈ Π΄Π²Π° указатСля Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ структуры. Если Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ описаниС, Ρ‚ΠΎ опсаниС

tnode s, *sp

описываСт s ΠΊΠ°ΠΊ структуру Π΄Π°Π½Π½ΠΎΠ³ΠΎ сорта ΠΈ sp ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру Π΄Π°Π½Π½ΠΎΠ³ΠΎ сорта. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ этих описаний Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

sp-Β»count

ссылаСтся Π½Π° ΠΏΠΎΠ»Π΅ count структуры, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ sp;

s.left

ссылаСтся Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π²Π° структуры s; Π°