mppss.ru – ВсС ΠΏΡ€ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ

ВсС ΠΏΡ€ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ

Π‘Π°ΠΌΡ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² c. Π’ΠΈΠΏΡ‹ char, short, int ΠΈ long. Как ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой

ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² языкС Π‘ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ свой Ρ‚ΠΈΠΏ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² памяти ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ мСсто, Ρ€Π°Π·Π½ΠΎΠ΅ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°. Π’ Π‘ΠΈ Π½Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ закрСплСния количСства памяти Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‚Π΄Π°Π½ΠΎ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ компилятора ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. НапримСр, пСрСмСнная Ρ‚ΠΈΠΏΠ° int Π² ΠΎΠ΄Π½ΠΎΠΌ компиляторС ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π² памяти 16 Π±ΠΈΡ‚, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” 32 Π±ΠΈΡ‚Π°, Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ β€” 8 Π±ΠΈΡ‚. ВсС опрСдСляСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ компилятор. ΠŸΡ€Π°Π²Π΄Π°, всС стрСмятся ΠΊ унивСрсализации, ΠΈ Π² основном Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ компиляторов Ρ‚ΠΈΠΏ int , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2 Π±Π°ΠΉΡ‚Π°, Π° Ρ‚ΠΈΠΏ char β€” ΠΎΠ΄ΠΈΠ½.

Π― Π² послСднСС врСмя Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Ρ‚ΡƒΠΏΠΈΠ», Π½Π΅ ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, сколько Π±Π°ΠΉΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΈΠΏ double Π² AVR-GCC . ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ с цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‚ΠΈΠΏΠ° int ΠΈ char , Π° ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π΅ΡˆΡŒ Π½Π΅ часто, Π² связи с ΠΈΡ… Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, ΠΎΡΡ‚Π°Π²Π»ΡŽ сСбС здСсь памятку с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для компилятора AVR-GCC ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… этого Ρ‚ΠΈΠΏΠ°.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС Π‘ΠΈ для компилятора AVR-GCC

Π’ΠΈΠΏ Π Π°Π·ΠΌΠ΅Ρ€ Π²
Π±Π°ΠΉΡ‚Π°Ρ… (Π±ΠΈΡ‚Π°Ρ…)
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» измСнСния
char 1 (8) -128 .. 127
unsigned char 1 (8) 0 .. 255
signed char 1 (8) -128 .. 127
int 2 (16) -32768 .. 32767
unsigned int 2 (16) 0 .. 65535
signed int 2 (16) -32768 .. 32767
short int 2 (16) -32768 .. 32767
unsigned short int 2 (16) 0 .. 65535
signed short int 2 (16) -32768 .. 32767
long int 4 (32) -2147483648 .. 2147483647
unsigned long int 4 (32) 0 .. 4294967295
signed long int 4 (32) -2147483648 .. 2147483647
float 4 (32) 3.4Π•-38 .. 3.4Π•+38
double 4 (32) 3.4Π•-38 .. 3.4Π•+38
long double 10 (80) 3.4Π•-4932 .. 3.4Π•+4932

РСализация Ρ‚ΠΈΠΏΠ° double Π² AVR-GCC отступаСт ΠΎΡ‚ стандарта. По стандарту double Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 64 Π±ΠΈΡ‚Π°. Π’ AVR-GCC пСрСмСнная этого Ρ‚ΠΈΠΏΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 32 Π±ΠΈΡ‚Π°, ΠΈ соотвСтствСнно, ΠΎΠ½Π° эквивалСнтна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Ρ‚ΠΈΠΏΠΎΠΌ float !

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… AVR-GCC Π²Π²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ стандартных Ρ‚ΠΈΠΏΠΎΠ². Они описаны Π² Ρ„Π°ΠΉΠ»Π΅ stdint.h . Π‘Π΄Π΅Π»Π°Π½ΠΎ это, Π½Π°Π²Π΅Ρ€Π½ΠΎ, для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ наглядности ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ускорСния ΠΈΡ… написания:)). Π’ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ° соотвСтствия:

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΡ‚ стандартных Π² языкС Π‘ΠΈ для компилятора AVR-GCC

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ
int8_t signed char
uint8_t unsigned char
int16_t signed int
uint16_t unsigned int
int32_t signed long int
uint32_t unsigned long int
int64_t signed long long int
uint64_t unsigned long long int

Π’ΠΈΠΏ Void

Π’ языкС Π‘ΠΈ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ β€” Ρ‚ΠΈΠΏ void . Void ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания, Ρ‡Ρ‚ΠΎ функция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π½Π΅ примСняСтся для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, соотвСтствСнно ΠΎΠ½ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСста Π² памяти.

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ char Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти 1 Π±Π°ΠΉΡ‚ (8 Π±ΠΈΡ‚) ΠΈ позволяСт Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния 2^8 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ=256. Π’ΠΈΠΏ char ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ составляСт ΠΎΡ‚ -128 Π΄ΠΎ 127.

uchar

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ uchar Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти 1 Π±Π°ΠΉΡ‚, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΈΠΏ char, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ, uchar ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ, максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 255. ΠŸΠ΅Ρ€Π²Π°Ρ Π±ΡƒΠΊΠ²Π° u Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° uchar являСтся сокращСниСм слова unsigned (Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ).

short

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ short ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 2 Π±Π°ΠΉΡ‚Π°(16 Π±ΠΈΡ‚) ΠΈ, соотвСтствСнно, позволяСт Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π²Π½ΠΎΠ΅ 2 Π² стСпСни 16: 2^16=65 536. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ short являСтся Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈ содСрТит ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ находится ΠΌΠ΅ΠΆΠ΄Ρƒ -32 768 ΠΈ 32 767.

ushort

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ short являСтся Ρ‚ΠΈΠΏ ushort, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 2 Π±Π°ΠΉΡ‚Π°. МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 0, максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 65 535.

int

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ int ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 4 Π±Π°ΠΉΡ‚Π° (32 Π±ΠΈΡ‚Π°). МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -2 147 483 648, максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 147 483 647.

uint

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ uint Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти 4 Π±Π°ΠΉΡ‚Π° ΠΈ позволяСт Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ цСлочислСнныС значСния ΠΎΡ‚ 0 Π΄ΠΎ 4 294 967 295.

long

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ long ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 8 Π±Π°ΠΉΡ‚ (64 Π±ΠΈΡ‚Π°). МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -9 223 372 036 854 775 808, максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 9 223 372 036 854 775 807.

ulong

Π¦Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ ulong Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 8 Π±Π°ΠΉΡ‚ ΠΈ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΠΎΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 615.

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

char ch= 12 ;
short sh=- 5000 ;
int in= 2445777 ;

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для хранСния ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ послСдствиям. Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π½Π΅Π²ΠΈΠ½Π½Ρ‹ΠΉ скрипт ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ бСсконСчному Ρ†ΠΈΠΊΠ»Ρƒ:

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Ch= -128 u_ch= 128
ch= -127 u_ch= 129
ch= -126 u_ch= 130
ch= -125 u_ch= 131
ch= -124 u_ch= 132
ch= -123 u_ch= 133
ch= -122 u_ch= 134
ch= -121 u_ch= 135
ch= -120 u_ch= 136
ch= -119 u_ch= 137
ch= -118 u_ch= 138
ch= -117 u_ch= 139
ch= -116 u_ch= 140
ch= -115 u_ch= 141
ch= -114 u_ch= 142
ch= -113 u_ch= 143
ch= -112 u_ch= 144
ch= -111 u_ch= 145
...

Π’ языкС Π‘ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ понятия β€œΡ‚ΠΈΠΏ данных” ΠΈ β€œΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ типа”. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… – это Ρ†Π΅Π»Ρ‹ΠΉ, Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ – со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Π¦Π΅Π»ΠΎΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π° Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. Π’ языкС Π‘ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

  • char – ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ.
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° char ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 1 Π±Π°ΠΉΡ‚, Π΅Π΅ значСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ символы ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: β€˜Ρ„β€™, β€˜:’, β€˜j’ (ΠΏΡ€ΠΈ записи Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ½ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ).

  • int – Ρ†Π΅Π»Ρ‹ΠΉ.
  • Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int Π² стандартС языка Π‘ΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм программирования Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int соотвСтствуСт Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Ρ†Π΅Π»ΠΎΠ³ΠΎ машинного слова. НапримСр, Π² компиляторах для 16-разрядных процСссоров пСрСмСнная Ρ‚ΠΈΠΏΠ° int ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 2 Π±Π°ΠΉΡ‚Π°. Π’ этом случаС Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -32768 Π΄ΠΎ 32767.

  • float – вСщСствСнный.
  • ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово float позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСщСствСнного Ρ‚ΠΈΠΏΠ°. Π˜Ρ… значСния ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΎΡ‚Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -5.6, 31.28 ΠΈ Ρ‚.ΠΏ. ВСщСствСнныС числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записаны Ρ‚Π°ΠΊΠΆΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -1.09e+4. Число ΠΏΠ΅Ρ€Π΅Π΄ символом β€œΠ΅β€ называСтся мантиссой, Π° послС β€œΠ΅β€ – порядком. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° float Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти 32 Π±ΠΈΡ‚Π°. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 3.4Π΅-38 Π΄ΠΎ 3.4e+38.

  • double – вСщСствСнный Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности;
  • ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово double позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности. Она Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти Π² Π΄Π²Π° Ρ€Π°Π·Π° большС мСста, Ρ‡Π΅ΠΌ пСрСмСнная Ρ‚ΠΈΠΏΠ° float. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° double ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 1.7e-308 Π΄ΠΎ 1.7e+308.

  • void – Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ значСния.
  • ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово void ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ значСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ простыми ΠΈ структурированными. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ – это Ρ†Π΅Π»Ρ‹Π΅ ΠΈ вСщСствСнныС числа, символы ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ (адрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти). Π¦Π΅Π»Ρ‹Π΅ числа Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚, Π° вСщСствСнныС ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ – это массивы ΠΈ структуры; ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½ΠΈΠΆΠ΅.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ – это ячСйка Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, которая ΠΈΠΌΠ΅Π΅Ρ‚ имя ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ записи Π² ячСйку Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния староС стираСтся.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм являСтся осмыслСнноС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ 32 символов. Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строчныС ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ символ подчёркивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π‘ΠΈ считаСтся Π±ΡƒΠΊΠ²ΠΎΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ символом ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ словами.

Π’ΠΈΠΏ char

char – являСтся самым экономным Ρ‚ΠΈΠΏΠΎΠΌ. Π’ΠΈΠΏ char ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ β€œsigned char” (Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ) ΠΈ β€œunsigned char” (Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ). Π—Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -128 Π΄ΠΎ +127. Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ – ΠΎΡ‚ 0 Π΄ΠΎ 255. Под ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° char отводится 1 Π±Π°ΠΉΡ‚ памяти (8 Π±ΠΈΡ‚).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова signed ΠΈ unsigned ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ интСрпрСтируСтся Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ‚ объявляСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚.Π΅., Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово unsigned, Ρ‚ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ‚ интСрпрСтируСтся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ числа, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±ΠΈΡ‚ интСрпрСтируСтся ΠΊΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ.

Π’ΠΈΠΏ int

ЦСлочислСнная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° int ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ short (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ) ΠΈΠ»ΠΈ long (Π΄Π»ΠΈΠ½Π½ΠΎΠΉ). ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово short ставится послС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов signed ΠΈΠ»ΠΈ unsigned. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹: signed short int, unsigned short int, signed long int, unsigned long int.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° signed short int (знаковая короткая цСлая) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния ΠΎΡ‚ -32768 Π΄ΠΎ +32767, unsigned short int (бСззнаковая короткая цСлая) – ΠΎΡ‚ 0 Π΄ΠΎ 65535. Под ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… отводится Ρ€ΠΎΠ²Π½ΠΎ ΠΏΠΎ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° памяти (16 Π±ΠΈΡ‚).

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° signed short int ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова signed ΠΈ short ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн просто int. ДопускаСтся ΠΈ объявлСниС этого Ρ‚ΠΈΠΏΠ° ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом short.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ unsigned short int ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна ΠΊΠ°ΠΊ unsigned int ΠΈΠ»ΠΈ unsigned short.

Под ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ signed long int ΠΈΠ»ΠΈ unsigned long int отводится 4 Π±Π°ΠΉΡ‚Π° памяти (32 Π±ΠΈΡ‚Π°). ЗначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… этого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ… ΠΎΡ‚ -2147483648 Π΄ΠΎ 2147483647 ΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 соотвСтствСнно.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° long long int, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отводится 8 Π±Π°ΠΉΡ‚ памяти (64 Π±ΠΈΡ‚Π°). Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Для Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π»Π΅ΠΆΠΈΡ‚ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ -9223372036854775808 Π΄ΠΎ 9223372036854775807, для Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ – ΠΎΡ‚ 0 Π΄ΠΎ 18446744073709551615. Π—Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн ΠΈ просто двумя ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами long long.

Π’ΠΈΠΏ Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ШСстнадцатСричный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π Π°Π·ΠΌΠ΅Ρ€
unsigned char 0 … 255 0x00 … 0xFF 8 bit
signed char
ΠΈΠ»ΠΈ просто
char
-128 … 127 -0x80 … 0x7F 8 bit
unsigned short int
ΠΈΠ»ΠΈ просто
unsigned int ΠΈΠ»ΠΈ unsigned short
0 … 65535 0x0000 … 0xFFFF 16 bit
signed short int ΠΈΠ»ΠΈ signed int
ΠΈΠ»ΠΈ просто
short ΠΈΠ»ΠΈ int
-32768 … 32767 0x8000 … 0x7FFF 16 bit
unsigned long int
ΠΈΠ»ΠΈ просто
unsigned long
0 … 4294967295 0x00000000 … 0xFFFFFFFF 32 bit
signed long
ΠΈΠ»ΠΈ просто
long
-2147483648 … 2147483647 0x80000000 … 0x7FFFFFFF 32 bit
unsigned long long 0 … 18446744073709551615 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF 64 bit
signed long long
ΠΈΠ»ΠΈ просто
long long
-9223372036854775808 … 9223372036854775807 0x8000000000000000 … 0x7FFFFFFFFFFFFFFF 64 bit

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ описания. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ описания состоит ΠΈΠ· спСцификации Ρ‚ΠΈΠΏΠ° ΠΈ списка ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… запятой. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой.

[ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹] спСцификатор_Ρ‚ΠΈΠΏΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ [, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€] ...

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ – ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова signed, unsigned, short, long.
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° – ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово char ΠΈΠ»ΠΈ int, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏ объявляСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ – имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Char x; int a, b, c; unsigned long long y;

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Int x = 100;

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x ΠΏΡ€ΠΈ объявлСнии сразу ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ записано число 100. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках.

Π’ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… мноТСств: мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ. НапримСр, ΠΊ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл, состоящСго ΠΈΠ· ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ мноТСства Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния (+), умноТСния (*), цСлочислСнного дСлСния (/), нахоТдСния остатка (%) ΠΈ вычитания (βˆ’).

Π―Π·Ρ‹ΠΊ программирования, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… - Ρ‚ΠΈΠΏΡ‹, прСдоставляСмыС языком программирования ΠΊΠ°ΠΊ базовая встроСнная Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Π’ C++ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ языка Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ . Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² C++ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ:

  • логичСский (bool);
  • ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ (Π½Π°ΠΏΡ€., char);
  • Ρ†Π΅Π»Ρ‹ΠΉ (Π½Π°ΠΏΡ€., int);
  • с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€., float);
  • пСрСчислСния (опрСдСляСтся программистом);
  • void .

ΠŸΠΎΠ²Π΅Ρ€Ρ… пСрСчислСнных строятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹:

  • ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π½Π°ΠΏΡ€., int*);
  • массивы (Π½Π°ΠΏΡ€., char);
  • ссылочныС (Π½Π°ΠΏΡ€., double&);
  • Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° (Π½Π°ΠΏΡ€., 1, 2.4F, 25e-4, β€˜a’ ΠΈ Π΄Ρ€.): Π»ΠΈΡ‚Π΅Ρ€Π°Π» - запись Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°ΡΡΠΎΠ±ΠΎΠΉ фиксированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π»ΠΈΡ‚Π΅Ρ€Π°Π» - это просто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΠ° Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ C++ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, Π±ΡƒΠ»Π΅Π²Ρ‹Ρ…, строковых.

Π›ΠΈΡ‚Π΅Ρ€Π°Π» Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²:

  • 10-ΠΉ систСмС счислСния. НапримСр, 1205 ;
  • 8-ΠΉ систСмС счислСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 0 + число. НапримСр, 0142 ;
  • 16-ΠΉ систСмС счислСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 0x + число. НапримСр, 0x2F .

24, 030, 0x18 - это всё записи ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ числа Π² Ρ€Π°Π·Π½Ρ‹Ρ… систСмах счислСния.
Для записи чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ запись Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ: 0.1, .5, 4. - Π»ΠΈΠ±ΠΎ Π²
ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ записи - 25e-100. ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Ρ‚Π°ΠΊΠΎΠΉ записи Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.

Имя, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ записанныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ значСния, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ - это поимСнованная Π»ΠΈΠ±ΠΎ адрСсуСмая ΠΈΠ½Ρ‹ΠΌ способом ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² памяти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ позволяСт Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…. Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π΅Ρ‘ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, Π° ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ (= ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ). ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² тСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ содСрТит 2 части: Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ частями:

Const int example = 3; // здСсь const - спСцификатор // int - Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ // example - имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ // = 3 - ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€.

Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ являСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ символов ΠΈΠ· Π±ΡƒΠΊΠ² латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° (строчных ΠΈ прописных), Ρ†ΠΈΡ„Ρ€ ΠΈ/ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠ° подчёркивания, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ . Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слСдуСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всСгда Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«monthPaymentΒ». Π’ конспСктС ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€Π°Π²ΠΈΠ» записи ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ CamelCase. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π² языкС словами, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… слов: if, while, function, goto, switch ΠΈ Π΄Ρ€.

Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы:

  • * - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ; ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ;
  • *const - константный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ; ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ;
  • & - ссылка; ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ;
  • - массив; послС ΠΈΠΌΠ΅Π½ΠΈ;
  • () - функция; послС ΠΈΠΌΠ΅Π½ΠΈ.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сразу послС объявлСния. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ начинаСтся с Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° равСнства (=) ΠΈ Π΄Π°Π»Π΅Π΅ происходит процСсс задания значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π·Π½Π°ΠΊ равСнства Π² C++ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ присваивания; с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Ρ‘Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ спСцификатор const позволяСт Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Π°ΠΊΠΈΠ΅ нСизмСняСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ константными ΠΈΠ»ΠΈ константой.

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ константу Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ получится ΠΏΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

Const int EMPTY_CONST; // ошибка, Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° константная пСрСмСнная const int EXAMPLE = 2; // константа со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 2 EXAMPLE = 3; // ошибка, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Для имСнования констант принято ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прописныС Π±ΡƒΠΊΠ²Ρ‹, раздСляя слова символом Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчёркивания.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C++

Разбирая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

1. ЦСлочислСнный Ρ‚ΠΈΠΏ (char, short (int), int, long (int), long long)

Из названия Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ состоит ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π’Π°ΠΊΠΆΠ΅ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· пСрСчислСнных Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ (signed) ΠΈΠ»ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ (unsigned). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов, содСрТащССся Π² мноТСствС, зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° памяти, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния значСния этого Ρ‚ΠΈΠΏΠ°. НапримСр, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° char отводится 1 Π±Π°ΠΉΡ‚ памяти, поэтому всСго элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚:

  • 2 8N = 2 8 * 1 = 256, Π³Π΄Π΅ N - Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти Π² Π±Π°ΠΉΡ‚Π°Ρ… для хранСния значСния

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ доступных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • - для Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ char
  • [-128..127] - для Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ char

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пСрСмСнная Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° считаСтся Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎ пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ, ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ слСва ΠΏΡ€ΠΈΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ знаковости, Ρ‚.Π΅. unsigned:

Unsigned long values; // Π·Π°Π΄Π°Ρ‘Ρ‚ Ρ†Π΅Π»Ρ‹ΠΉ (Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ) Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ памяти, которая трСбуСтся для хранСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ язык C++ достаточно машинно-зависимый стандарт языка лишь Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ условия:

  • 1 = Ρ€Π°Π·ΠΌΠ΅Ρ€ char ≀ Ρ€Π°Π·ΠΌΠ΅Ρ€ short ≀ Ρ€Π°Π·ΠΌΠ΅Ρ€ int ≀ Ρ€Π°Π·ΠΌΠ΅Ρ€ long.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅: char - 1, short - 2, int - 4, long -8, long long - 8 Π±Π°ΠΉΡ‚.

Π‘ΠΎ значСниями Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: +, -, *, /, %; ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния: ==, !=, <=, <, >, >=; Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: &, |, xor, <<, >>.
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТСниС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния, Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ. Иногда, послС выполнСния арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ; Π² этом случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.
ЦСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (/) Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚ дСлСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅. НапримСр:

  • 6 / 4 = 1;
  • 2 / 5 = 0;
  • 8 / 2 = 4.

Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° (%) ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ остатка ΠΎΡ‚ дСлСния Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл:

  • 6 % 4 = 2;
  • 10 % 3 = 1.

Π‘ΠΎΠ»Π΅Π΅ слоТныС для понимания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ - Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅: & (И), | (Π˜Π›Π˜), xor (ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜), << (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²Π»Π΅Π²ΠΎ), >> (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²ΠΏΡ€Π°Π²ΠΎ).

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ И, Π˜Π›Π˜ ΠΈ XOR ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π±ΠΈΡ‚Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ:

  • 1 10 = 01 2
  • 3 10 = 11 2
  • 1 10 & 3 10 = 01 2 & 11 2 = 01 2
  • 1 10 | 3 10 = 01 2 | 11 2 = 11 2
  • 1 10 xor 3 10 = 01 2 xor 11 2 = 10 2

Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ изобраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 3 ΠΊΠ°Π½Π°Π»Π° для Ρ†Π²Π΅Ρ‚Π°: красный, синий ΠΈ Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ - плюс ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int, Ρ‚.ΠΊ. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ 0 Π΄ΠΎ 255. Π’ 16-ΠΈΡ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ записываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: 0x180013FF; Ρ‚ΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 18 16 соотвСтствуСт красному ΠΊΠ°Π½Π°Π»Ρƒ, 00 16 - синСму, 13 16 - Π·Π΅Π»Ρ‘Π½ΠΎΠΌΡƒ, FF - Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Ρƒ (прозрачности). Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚.Π½. маску, Π³Π΄Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… нас позициях стоят F 16 ΠΈΠ»ΠΈ 1 2 . Π’.Π΅., Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ синСго ΠΊΠ°Π½Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ маску, Ρ‚.Π΅. ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ И:

Int blue_channel = 0x180013FF & 0x00FF0000;

ПослС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сдвигаСтся Π²ΠΏΡ€Π°Π²ΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ число Π±ΠΈΡ‚.

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг смСщаСт Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ Π½Π° ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов числа, сколько ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, число 39 для Ρ‚ΠΈΠΏΠ° char Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ записываСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅: 00100111. Π’ΠΎΠ³Π΄Π°:

Char binaryExample = 39; // 00100111 char result = binaryExample << 2; // сдвигаСм 2 Π±ΠΈΡ‚Π° Π²Π»Π΅Π²ΠΎ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 10011100

Если пСрСмСнная Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ число 156, для Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ -100. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π² ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌ разрядС Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прСдставлСния - ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ числа. ΠŸΡ€ΠΈ этом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ состоящиС ΠΈΠ· всСх Π΅Π΄ΠΈΠ½ΠΈΡ† соотвСтствуСт -1; Ссли ΠΆΠ΅ 1 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌ разрядС, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… разрядах - Π½ΡƒΠ»ΠΈ, Ρ‚ΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΎΠ΅ число ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° значСния: для char это -128.

2. Π’ΠΈΠΏ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (float, double (float))

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ являСтся подмноТСством вСщСствСнных чисСл, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ вСщСствСнноС число прСдставимо Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊ Π³Π»ΡƒΠΏΡ‹ΠΌ ошибкам:

Float value = 0.2; value == 0.2; // ошибка, value здСсь Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 0.2.

Работая с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, программист Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° равСнство ΠΈΠ»ΠΈ нСравСнство, вмСсто этого ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»:

Value - 0.2 < 1e-6; // ok, ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ остороТно

Помимо ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния Ρ‚ΠΈΠΏ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 4 арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ матСматичСским опСрациям с вСщСствСнными числами.

3. Π‘ΡƒΠ»Π΅Π²Ρ‹ΠΉ (логичСский) Ρ‚ΠΈΠΏ (bool)

Бостоит всСго ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: true (ΠΏΡ€Π°Π²Π΄Π°) ΠΈ false (лоТь). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: ! (НЕ), == (равСнство), != (нСравСнство), && (логичСскоС И), || (логичСскоС Π˜Π›Π˜). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ истинности. Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

X Y XOR 0 0 0 0 1 1 1 0 1 1 1 0

4. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ (char, wchar_t)

Π’ΠΈΠΏ char - Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ byte), Π½ΠΎ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ, хранящий Π½ΠΎΠΌΠ΅Ρ€ символа ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символом ASCII . НапримСр ΠΊΠΎΠ΄ 0x41 соотвСтствуСт символу β€˜A’, Π° 0x71 - β€˜t’.

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ использования символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII ΠΈ поэтому Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для хранСния Π±ΠΎΠ»Π΅Π΅ 1-Π³ΠΎ Π±Π°ΠΉΡ‚Π°. Для Π½ΠΈΡ… сущСствуСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ символ (wchar_t).

5.1. ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов. Массив хранится Π² памяти Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ, поэтому нСльзя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив, Π½Π΅ ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки () с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. НапримСр:

Int myArray; // Массив ΠΈΠ· 5-ΠΈ элСмСнтов Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива значСния ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² этом случаС Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива:

Int odds = {1, 3, 7, 9, 11}; // Массив инициализируСтся 5-ю значСниями

Для доступа ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² массивС (элСмСнта массива) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ доступа ΠΏΠΎ индСксу () с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€Π° элСмСнта (Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0). НапримСр:

Odds; // доступ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива. Π’Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 odds; // доступ ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ элСмСнту. Π’Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7 odds = 13; // 5-ΠΌΡƒ элСмСнту массива присваиваСм Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ odds; // ошибка доступа

5.3. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

Для записи строки программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ идСю, Ρ‡Ρ‚ΠΎ строка - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ряд (массив) символов. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ†Π° строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ ΠΊΠΎΠ½Ρ†Π° строки: β€˜\0’. Π’Π°ΠΊΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, состоящиС ΠΈΠ· ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слэша ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ символа, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ»ΠΈ escape-символами. Π•Ρ‰Ρ‘ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€˜\n’ - Π½Π°Ρ‡Π°Π»ΠΎ Π½ΠΎΠ²ΠΎΠΉ строки, β€˜\t’ - табуляция. Для записи Π² строкС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слэша ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ экранированиС - ΠΏΠ΅Ρ€Π΅Π΄ самим Π·Π½Π°ΠΊΠΎΠΌ ставят Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ слэш: β€˜\’. Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для записи ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ строки:

Char textExample = {β€˜T’, β€˜e’, β€˜s’, β€˜t’, β€˜\0’}; // записана строка Β«TestΒ»

БущСствуСт упрощённая запись ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ строки:

Char textExample = β€œTest”; // ПослСдний символ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ, Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ всё Π΅Ρ‰Ρ‘ 5

НС вдаваясь Π² подробности, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… - string. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ
Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ:

String hello = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, "; string name = "Макс!"; string hello_name = hello + name; // ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡΡ строка Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Макс!Β»

6. Бсылка

Int a = 2; // пСрСмСнная Β«aΒ» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 int &b = a; // пСрСмСнная Β«bΒ» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΡƒΠ΄Π° ΠΆΠ΅, ΠΊΡƒΠ΄Π° ΠΈ Β«aΒ» b = 4; // мСняя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b, программист мСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ a. Π’Π΅ΠΏΠ΅Ρ€ΡŒ a = 4 int &c = 4; // ошибка, Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ нСльзя, Ρ‚.ΠΊ. ссылка нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

7. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с этим Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этого Ρ‚ΠΈΠΏΠ° - адрСса ячССк памяти, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния (+), вычитания (-) ΠΈ разымСновывания (*).

АдрСса 0x0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ пуст, Ρ‚.Π΅. Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎΡ‚ адрСс ΠΈΠΌΠ΅Π΅Ρ‚ свой Π»ΠΈΡ‚Π΅Ρ€Π°Π» - NULL:

Int *nullPtr = NULL; // пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ адрСса с Ρ†Π΅Π»Ρ‹ΠΌ числом ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ адрСсом позволяСт
ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ памяти, доступной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ получСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎ адрСсу, хранящСмуся Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅, называСтся разымСновывания (*). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считываСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство ячССк памяти ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π² памяти.

Int valueInMemory = 2; // Π·Π°Π΄Π°Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρƒ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° int *somePtr = &valueIntMemory; // ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, здСсь & - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ somePtr; // адрСс ячСйки памяти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0x2F *somePtr; // Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ хранится Π² 4-Ρ… ячСйках: 0x2F, 0x30, 0x31 ΠΈ 0x32

Для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ доступна опСрация присваивания, которая синтаксичСски совпадаСт с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ копирования. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ адрСс Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ указатСля ΠΈΠ»ΠΈ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ адрСса самому нСльзя.

Π‘Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ хранится Π² памяти, ΠΊΠ°ΠΊ ΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 4 Π±Π°ΠΉΡ‚Π°, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

8. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ СдинствСнный Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ программистом. По Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту пСрСчислСниС - упорядочСнный Π½Π°Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… цСлочислСнных констант, ΠΏΡ€ΠΈ этом имя пСрСчислСния Π±ΡƒΠ΄Π΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

Enum color {RED, BLUE, GREEN};

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, RED = 0, BLUE = 1, GREEN = 2. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ значСния ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Ρ‚.Π΅. RED < BLUE < GREEN. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΏΡ€ΠΈ объявлСнии пСрСчислСния ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ значСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· констант:

Enum access {READ = 1, WRITE = 2, EXEC = 4};

Часто ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСчислСния, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π΄Π²ΠΎΠΉΠΊΠΈ, Ρ‚.ΠΊ. Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии число, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ 2-ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 1-ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ Π½ΡƒΠ»Π΅ΠΉ. НапримСр:

8 10 = 00001000 2

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния этих чисСл ΠΌΠ΅ΠΆΠ΄Ρƒ собой всСгда ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ числа ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΈΡΡŒ:

37 10 = 00100101 2 = 00000001 2 + 00000100 2 + 00100000 2 = 1 10 + 4 10 + 32 10

Void

БинтаксичСски Ρ‚ΠΈΠΏ void относится ΠΊ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ лишь ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТных Ρ‚ΠΈΠΏΠΎΠ², Ρ‚.ΠΊ. ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° void Π½Π΅ сущСствуСт. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, этот Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для информирования ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π»ΠΈΠ±ΠΎ Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° указатСля Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

Void object; // ошибка, Π½Π΅ сущСствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° void void &reference; // ошибка, Π½Π΅ сущСствуСт ссылов Π½Π° void void *ptr; // ok, Ρ…Ρ€Π°Π½ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° нСизвСстный Ρ‚ΠΈΠΏ

Часто ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ void ΠΈΠΌΠ΅Π½Π½ΠΎ для обозначСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ функция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния. Π‘ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏΠ° void Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° программист Π±Π΅Ρ€Ρ‘Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° сСбя Π·Π°Π±ΠΎΡ‚Ρƒ ΠΎ цСлостности памяти ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ°.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ привСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π’ случаС, ΠΊΠΎΠ³Π΄Π° мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ исходного Ρ‚ΠΈΠΏΠ° являСтся подмноТСством большСго Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, int являСтся подмноТСством long, Π° long - double), компилятор способСн нСявно (implicitly ) ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ значСния.

Int integer = 2; float floating = integer; // floating = 2.0

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΎΡ‚ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлая Ρ‡Π°ΡΡ‚ΡŒ, дробная Π±ΡƒΠ΄Π΅Ρ‚ потСряна.

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ явного (explicitly) прСобразования Ρ‚ΠΈΠΏΠΎΠ², для этого слСва ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния исходного Ρ‚ΠΈΠΏΠ° Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках ΠΏΠΈΡˆΡƒΡ‚ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

Int value = (int) 2.5;

Π£Π½Π°Ρ€Π½Ρ‹Π΅ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π’Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ выполняли Ρ€Π°Π½Π΅Π΅, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ: слСва ΠΈ справа ΠΎΡ‚ символа ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ находятся значСния ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2 + 3. Π’ языках программирования ΠΏΠΎΠΌΠΈΠΌΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Они ΠΌΠΎΠ³Ρƒ находится ΠΊΠ°ΠΊ слСва, Ρ‚Π°ΠΊ ΠΈ справа ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, нСсколько Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ Ρ€Π°Π½Π΅Π΅ - опСрация разымСновывания (*) ΠΈ взятиС адрСса ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (&) ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Β«++Β» ΠΈ Β«β€”Β» ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° 1 соотвСтствСнно, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΌΠΎΠ³Ρƒ ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ слСва, Π»ΠΈΠ±ΠΎ справа ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’ C++ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся сокращённая запись Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° Π² Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ частях выраТСния находится ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ пСрСмСнная, Ρ‚.Π΅. выполняСтся какая-Π»ΠΈΠ±ΠΎ опСрация со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ заносится Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

A += 2; // Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ a = a + 2; b /= 5; // Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ b = b / 5; c &= 3; // Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ c = c & 3;

ΠžΡ‚Π²Π΅Ρ‚:
  1. Π¦Π΅Π»ΠΎΡ‡ΠΈΡΠ΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

short int , unsigned short int , int , unsigned int , long , unsigned long .

  1. Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ вСщСствСнным Ρ‚ΠΈΠΏΠ°ΠΌ):

float , double , long double .

  1. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…:

char (signed char ), unsigned char, wchar_t .

  1. ЛогичСский Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…:

bool .

  1. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (Π²Π²Π΅Π΄Π΅Π½ Π² Visual C++ ):

enum .

2. КакиС особСнности использования цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…?

Π’ C++ основныС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: short int , unsigned short int , int , unsigned int , long (long int ), unsigned long (unsigned long int ).

Π­Ρ‚ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния ΠΈΠ· мноТСства Ρ†Π΅Π»Ρ‹Ρ… чисСл. НапримСр:

2 -100 398

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈΠ· приставки unsigned , ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа.

Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° short int , unsigned short int Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС мСста Π² памяти Ρ‡Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° int , unsigned int .

Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° long , unsigned long Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² Π΄Π²Π° Ρ€Π°Π·Π° большС мСста Π² памяти Ρ‡Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° int , unsigned int .

3. Как Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ x Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°?

ΠžΡ‚Π²Π΅Ρ‚:
int x; // Ρ†Π΅Π»ΠΎΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ мСсто Π² памяти Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 Π±Π°ΠΉΡ‚Π°. Π Π°Π·ΠΌΠ΅Ρ€ памяти, которая выдСляСтся ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ зависит ΠΎΡ‚ характСристик ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ настроСк компилятора.

4. Как Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ число 239?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обозначаСтся символом β€˜= β€˜.

ΠžΡ‚Π²Π΅Ρ‚ 1. ВнСсСниС числа Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ послС Π΅Π΅ описания.

int x; x = 239;

ΠžΡ‚Π²Π΅Ρ‚ 2. ВнСсСниС числа Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²ΠΎ врСмя Π΅Π΅ описания (Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ инициализация).

int x = 239;

5. КакиС особСнности Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой?

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ значСния ΠΈΠ· мноТСства вСщСствСнных чисСл. НапримСр:

8.35 -990.399 239.0.

Π’ C++ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой: float , double , long double .

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° double Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² 2 Ρ€Π°Π·Π° большС мСста Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Ρ‡Π΅ΠΌ пСрСмСнная Ρ‚ΠΈΠΏΠ° float .

Π’Π°ΠΊ ΠΆΠ΅ пСрСмСнная Ρ‚ΠΈΠΏΠ° long double Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² 2 Ρ€Π°Π·Π° большС мСста Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Π΅ΠΌ пСрСмСнная Ρ‚ΠΈΠΏΠ° double .

6. Как ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° float , double , long double :

float f; double d; long double ld;

7. Как Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ числовыС значСния?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ внСсСния числовых Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой:

float f = -9928.45; // Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ инициализация double d; long double ld; d = 0.445332; // ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания ld = 3892923898239.030903; // ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания

8. Как пСрСвСсти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° float Π² Ρ‚ΠΈΠΏ int ?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опСрация привСдСния Ρ‚ΠΈΠΏΠΎΠ². Π’ скобках Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ происходит ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

float a; int b; a = 8.457; b = (int ) a; // b = 8

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

НапримСр, пСрСмСнная Ρ‚ΠΈΠΏΠ° short int ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ мСньший Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ² float , double . Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ листингС происходит ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ значСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° short int :

short int i; float f; f = 3990099.8; i = (int )f; // i = -7597 - ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

9. Как пСрСвСсти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ· Ρ‚ΠΈΠΏΠ° int Π² Ρ‚ΠΈΠΏ double ?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ привСдСния с int Π² double :

int i; double d; i = 982; d = (double )i; // d = 982.0

10. КакиС особСнности использования Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° char (ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅?

Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° char ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ символьноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Код символа Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число.

НапримСр, ΠΊΠΎΠ΄ символа β€˜f’ Ρ€Π°Π²Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 102 .

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вычисляСтся ΠΊΠΎΠ΄ символа:

int code; char symbol; symbol = "f" ; code = (int )symbol; // code = 102

Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° char Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами. Π”Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° char Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° 1 Π±Π°ΠΉΡ‚.

Π‘ΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ «символ-ΠΊΠΎΠ΄Β» размСщаСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов Windows. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 127 – это Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ символы BIOS. Они Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ употрСбляСмыС символы, символы Ρ†ΠΈΡ„Ρ€, символы латинской Π°Π·Π±ΡƒΠΊΠΈ. Π­Ρ‚ΠΈ символы ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ‚ 128 Π΄ΠΎ 255 – это Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ привязанныС ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Π·Π±ΡƒΠΊΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ установлСнная опСрационная систСма Windows.

11. КакиС особСнности использования Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° bool (логичСский Ρ‚ΠΈΠΏ)?

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° bool ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° значСния:

true – истина,

false – лоТь.

Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ЧисловоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true Ρ€Π°Π²Π½ΠΎ 1 . ЧисловоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false Ρ€Π°Π²Π½ΠΎ 0 .

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт числовыС значСния true ΠΈ false :

int result; bool b; result = (int )true ; // result = 1 b = false ; result = (int )b; // result = 0

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ int ΠΈ float Π² bool :

int i; float f; bool b; i = 6; b = (bool )i; // b = True f = 0.0; b = (bool )f; // b = False

12. Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ пСрСмСнная Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опСрация sizeof() .

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

int d; d = sizeof (char ); // d = 1 d = sizeof (unsigned int ); // d = 4 d = sizeof (float ); // d = 4 d = sizeof (double ); // d = 8

13. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ осущСствляСтся инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²?

int d = 28; float z = (float )2.85; char c = "k" ; String ^s = "Hello!" ; double r = -8.559;

14. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ максимально допустимоС (минимально допустимоС) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ максимально допустимоС ΠΈΠ»ΠΈ минимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ .NET Framework ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства MaxValue ΠΈ MinValue .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ опрСдСлСния ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° int :

// Ρ‚ΠΈΠΏ int int i; long MaxInt; long MinInt; MaxInt = (long )i.MaxValue; // MaxInt = 2147483647 MinInt = (long )i.MinValue; // MinInt = -2147483648

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° short int :

// Ρ‚ΠΈΠΏ short int short int si; int MaxInt; int MinInt; MaxInt = (int )si.MaxValue; // MaxInt = 32767 MinInt = (int )si.MinValue; // MinInt = -32768

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° unsigned int :

// Ρ‚ΠΈΠΏ unsigned int unsigned int ui; unsigned int MaxInt; unsigned int MinInt; MaxInt = ui.MaxValue; // MaxInt = 4294967295 MinInt = ui.MinValue; // MinInt = 0

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° float :

// Ρ‚ΠΈΠΏ float float f; float MaxF; float MinF; MaxF = f.MaxValue; // MaxF = 3.402823E+38 MinF = f.MinValue; // MinF = -3.402823E+38

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° double :

// Ρ‚ΠΈΠΏ double double d; double MaxD; double MinD; Max = d.MaxValue; // Max = 1.79769313486232E+308 Min = d.MinValue; // Min = -1.79769313486232E+308

Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° char :

// Ρ‚ΠΈΠΏ char char c; int MaxC; int MinC; Max = (int )c.MaxValue; // Max = 127 Min = (int )c.MinValue; // Min = -128

15. КакиС особСнности использования Ρ‚ΠΈΠΏΠ° enum ?

Π’ΠΈΠΏ enum – это ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π½Π΅ΠΌ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ мнСмоничСскиС значСния для мноТСств Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. КаТдоС мнСмоничСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ содСрТаниС ΠΈ прСдставляСтся Ρ†Π΅Π»Ρ‹ΠΌ числом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ‚ΠΈΠΏΠ° enum для обозначСния мСсяцСв Π³ΠΎΠ΄Π°:

enum months { January, February, March, April, May, June, July, August, September, October, November, December } mn; mn = January; // mn = 0 mn = March; // mn = 2 mn = September; // mn = 8

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ описываСтся пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ mn Ρ‚ΠΈΠΏΠ° enum months . ΠœΠ½Π΅ΠΌΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ значСния мСсяцСв (January , February , …) Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0 (0 , 1 , 2 , …). ΠœΠ½Π΅ΠΌΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ January соотвСтствуСт Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 , мнСмоничСскому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ February соотвСтствуСт Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 , ΠΈ Ρ‚.Π΄.

Π˜Ρ‚Π°ΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠ° enum , Π² тСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мнСмоничСскиС обозначСния для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ наглядности исходного ΠΊΠΎΠ΄Π°.

МоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

mn = (enum months)2; // mn = March mn = (enum months)11; // mn = December

16. КакиС особСнности примСнСния Ρ‚ΠΈΠΏΠ° void Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° C ++ ?

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… void ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  • Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€);
  • Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ . Ѐункция MyFun() Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ void ) ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

public : void MyFun(void ) { // Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ // ... return; // Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния } // Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ... MyFun(); ...

17. МоТно Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° void Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅?

НСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ void Π½Π΅ связан со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° void ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС компиляции с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ сообщСния:

"Illegal use of type void "

18. КакиС особСнности примСнСния Ρ‚ΠΈΠΏΠ° wchar _ t Π² Visual C ++ ?

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° char (смотритС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для сохранСния 8-разрядных ASCII -символов.

Π’ΠΈΠΏ wchar_t ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² состав Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ². НапримСр, Π² китайской Π°Π·Π±ΡƒΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство символов. 8 разрядов нСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вСсь Π½Π°Π±ΠΎΡ€ символов китайской Π°Π·Π±ΡƒΠΊΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΌ Ρ€Ρ‹Π½ΠΊΠ΅, цСлСсообразно Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ char Π½Π° wchar_t .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ‚ΠΈΠΏΠ° wchar_t .

... wchar_t t; // для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ t выдСляСтся 2 Π±Π°ΠΉΡ‚Π° памяти t = "s"; ...

НаТимая ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ сайта, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ соглашСнии