C ++ mainīgie un veidi: int, double, char, string, bool

Satura rādītājs:

Anonim

Mainīgie lielumos C ++

C ++ mainīgais nodrošina mums nosaukto uzglabāšanas iespēju. Tas ļauj programmētājam manipulēt ar datiem atbilstoši nepieciešamībai. Katram mainīgajam ir tips C ++. Mainīgā tips palīdz noteikt mainīgā atmiņas kartes lielumu un izkārtojumu, vērtību diapazonu, ko var saglabāt šajā atmiņā, un tam izmantojamo darbību kopumu.

Šajā C ++ apmācībā jūs uzzināsiet:

  • Mainīgie lielumos C ++
  • Mainīgo lieluma veidi C ++
  • Mainīgo deklarēšanas noteikumi C ++
  • C ++ mainīgo datu tipi
  • Mainīgā nosaukums vai identifikatori
  • Const kvalifikācija C ++
  • Mainīgo lielums C ++
  • Mainīgā tipa pārveidošana
  • Reģistrēt mainīgos
  • Bēgšanas secības

Mainīgo lieluma veidi C ++

Šeit ir C ++ mainīgo pamata veidi:

Int:

Vesels skaitlis ir skaitliskais burtnieks (saistīts ar cipariem) bez daļskaitļa vai eksponenciālās daļas. Piemērs. 120, -90 utt.

Dubultā:

Tā ir dubultprecīzā peldošā komata vērtība. Piemērs: 11.22, 2.345

Char:

Rakstzīmju burtnieks tiek izveidots, pēdiņās ievietojot vienu rakstzīmi. Piemēram: 'a', 'm', 'F', 'P', '}' utt.

Peldēt:

Peldošā komata litālis ir skaitliskais literālis, kuram ir vai nu dalījuma forma, vai eksponenta forma. Piemēram: 1.3, 2.6

Stīgu literāti:

Virknes literālis ir rakstzīmju secība, kas iespiesta pēdiņās. Piemēram: "Kā tev iet?"

Bool:

Tajā Būla vērtība ir patiesa vai nepatiesa.

Mainīgo deklarēšanas noteikumi C ++

Šeit ir daži kopīgi mainīgā nosaukšanas noteikumi:

  • C ++ mainīgā nosaukumā var būt tikai alfabēti, cipari un pasvītrojums.
  • C ++ mainīgā nosaukums nevar sākties ar skaitli.
  • Mainīgo nosaukumus nedrīkst sākt ar lielo burtu.
  • C ++ izmantotais mainīgā nosaukums nevar būt atslēgvārds. Piemēram, int ir atslēgvārds, ko lieto, lai apzīmētu veselus skaitļus.
  • C ++ mainīgā nosaukums var sākties ar pasvītrojumu. Tomēr to neuzskata par labu praksi.

C ++ mainīgo datu tipi

C ++ definē veselu primitīvu tipu kopumu

Neesošu veids nav neviena saistīta vērtības ar to un to var izmantot tikai dažas apstākļiem. Visbiežāk tas ir atgriešanās funkciju veids, kas neatgriež vērtību.

Par aritmētiskās veidi ietver rakstzīmes, integers, Būla vērtības un peldošā komata skaitļus. Aritmētiskais tips, ja sīkāk iedalīts 2 kategorijās

  1. Peldošo punktu veidi . Peldošais (vai peldošais tips) apzīmē decimāldaļskaitļus. IEEE standarts nosaka minimālo nozīmīgo ciparu skaitu. Lielākā daļa kompilatoru parasti nodrošina lielāku precizitāti nekā noteiktais minimums. Parasti pludiņus attēlo 32 biti, dubulto 64 bitos un garie dubulto ar 96 vai 128 bitiem.
  2. Integrētie tipi (kas ietver rakstzīmes, veselos skaitļus un Būla tipus). Būla tips ir tikai divu veidu vērtībām: patiesa vai nepatiesa. Ir vairāki char veidi, no kuriem lielākā daļa pastāv, lai atbalstītu internacionalizāciju. Pamata rakstzīmju veids ir char. Char ir tāda paša izmēra kā viens mašīnas baits, kas nozīmē vienu baitu.

Par Integral veidi var tikt parakstīti vai neparakstītus.

Parakstītais tips : tie attēlo negatīvus vai pozitīvus skaitļus (ieskaitot nulli). Parakstītā tipā diapazons vienmērīgi jāsadala starp + ve un -ve vērtībām. Tādējādi 8 bitu parakstītajai rakstzīmei būs vērtības no -127 līdz 127.

Neparakstīts tips : neparakstītā tipā visas vērtības ir> = 0. 8 bitu neparakstīta rakstzīme var saturēt no 0 līdz 255 (abas ieskaitot).

Mainīgā nosaukums vai identifikatori

Identifikatorus var veidot daži burti, cipari un pasvītrojums vai kāda to kombinācija. Vārda garumam nav noteikts ierobežojums.

Identifikatoriem jābūt

  • sākas ar burtu vai pasvītrojumu ('_').
  • Un ir reģistrjutīgi; lielie un mazie burti ir atšķirīgi:

// definē četrus dažādus int mainīgos

int guru99, gurU99, GuRu99, GURU99;

C ++ valoda ir rezervējusi dažus nosaukumus tās lietošanai.

Mainīgo mainīšanai dažādās programmēšanas valodās ir daudz pieņemtu pieeju. Šo konvenciju ievērošana var uzlabot programmas lasāmību.

  • Identifikatoram vajadzētu vismaz nedaudz norādīt tā nozīmi.
  • Mainīgie nosaukumi parasti ir mazie burti-guru99, nevis Guru99 vai GURU99.
  • Mūsu definētās klases parasti sākas ar lielo burtu.
  • Identifikatoriem, kas satur vairākus vārdus, vizuāli jānošķir katrs vārds. Piemēram, guru99_website, nevis guru99website.

C ++ mainīgā deklarācija un definīcija

Mainīgā deklarācija padara programmu zināmu tās darbības jomā, kurā tas ir definēts. Piemērs:

int a=5;int b;char c='A';
int a,b;a=b=1000;
List initializationint a(5);int b{5};

Const kvalifikācija C ++

Pieņemsim, ka pastāv mainīgs bufete, kurā norādīts ievadīto lietotāju skaits. Šeit mēs nevēlamies mainīt buffsize vērtību visā programmā. Mēs vēlamies definēt mainīgo, kura vērtībai, kuru mēs zinām, nevajadzētu mainīties.

Šādā gadījumā izmantojiet atslēgvārdu const

const int bufSize = 512; // input buffer size

Tas definē bufSize kā konstanti. Jebkurš mēģinājums piešķirt vai mainīt bufSize rada kļūdu.

Šeit mēs nevaram mainīt konst objekta vērtību pēc tā izveides, tam jābūt obligāti deklarētam un inicializētam. Pretējā gadījumā kompilators izmet kļūdu.

const int i = get_size(); // ok: initialized at run timeconst int j = 42; // ok: initialized at compile timeconst int k; // error: k is uninitialized constint i = 42;const int ci = i; // ok: the value in i is copied into ci

Mainīgo lielums C ++

Darbības joma ir programmas posms, kurā mainīgajam ir nozīme. Pārsvarā to pašu nosaukumu var izmantot, lai atsauktos uz dažādām entītijām dažādās jomās. Mainīgie ir redzami no deklarēšanas vietas līdz darbības jomas beigām, kurā parādās viņu deklarācija.

#include int main(){int sum = 0;// sum values from 1 through 10 inclusivefor (int val = 1; val <= 10; ++val)sum += val; // equivalent to sum = sum + valcout << "Sum of 1 to 10 inclusive is "<< sum <

Šī programma nosaka 3 nosaukumus, ti, galveno, summu un val. Tas izmanto nosaukumvietas nosaukumu std kopā ar diviem citiem nosaukumiem no šīs nosaukumvietas-cout un endl.

  • Funkcijas nosaukums "main" ir definēts ārpus cirtainajām lencēm. Funkcijas nosaukumam main līdzīgi lielākajai daļai citu nosaukumu, kas definēti ārpus funkcijas, ir globāla darbības joma. Tas nozīmē, ka pēc deklarēšanas nosaukumi, kas ir globālā mērogā, ir pieejami visā programmā.
  • Mainīgo summu nosaka tā bloka darbības jomā, kas ir galvenās funkcijas pamatteksts. Tam var piekļūt no deklarēšanas vietas un visā pārējā galvenās funkcijas ķermenī. Tomēr ne ārpus tā. Tas nozīmē, ka mainīgajai summai ir bloķēšanas joma .
  • Mainīgais val ir definēts darbības jomas "for statement". To var viegli izmantot šajā paziņojumā, bet ne citur galvenajā funkcijā. Tam ir lokāls mērogs .

Ligzdota darbības joma

Darbības sfērā var būt citas darbības jomas. Ietverto (vai ligzdoto) darbības jomu sauc par iekšējo darbības jomu. Saturošā darbības joma ir ārējā darbības joma.

#include using namespace std;// Program for illustration purposes only: It is bad style for a function// to use a global variable and also define a local variable with the same nameint reused = 42; // reused has global scopeint main(){int unique = 0; // unique has block scope// output #1: uses global reused; prints 42 0cout << reused << " " << unique << endl;int reused = 0; // new, local object named reused hides global reused// output #2: uses local reused; prints 0 0cout << reused << " " << unique << endl;// output #3: explicitly requests the global reused; prints 42 0cout << ::reused << " " << unique << endl;return 0;}

Rezultāts Nr. 1 parādās pirms atkārtotas izmantošanas vietējās definīcijas. Tādējādi šī izeja

paziņojums ir tas, kas izmanto atkārtoti izmantoto vārdu, kas definēts globālā mērogā. Šis paziņojums izdod

42 0

Rezultāts Nr. 2 rodas pēc atkārtotas izmantošanas vietējās definīcijas. Tagad tas ir darbības jomā. Tādēļ šajā otrajā izvades paziņojumā vienkārši tiek izmantots vietējais objekts ar nosaukumu atkārtoti izmantots, nevis globālais un izejas

0 0

Rezultāts Nr. 3 ignorē noklusējuma mērogošanas kārtulas, izmantojot darbības jomas operatoru. Globālajai jomai nav nosaukuma. Tādējādi, kad darbības jomas operatoram (: :) ir tukša kreisā puse. Tas to interpretē kā pieprasījumu iegūt vārdu globālās darbības jomas labajā pusē. Tādējādi izteiksmē tiek izmantoti globālie atkārtoti izmantotie un iznākumi

42 0

Mainīgā tipa pārveidošana

Viena veida mainīgo var pārveidot par citu. Tas ir pazīstams kā "Tips Conversion". Apskatīsim noteikumus dažādu C ++ mainīgo tipu konvertēšanai:

Piešķirot bool mainīgajam mainīgajam lielumam, iegūst vērtību false, ja vērtība ir 0, un taisnība ir citādi.

bool b = 42; // b is true

Piešķirot boolam kādu no citiem aritmētiskajiem veidiem, iegūst 1, ja bool ir patiess, un 0, ja bool ir nepatiesa.

bool b = true;int i = b; // i has value 1

Piešķirot peldošā komata vērtību int tipa mainīgajam, iegūst vērtību, kas tiek saīsināta. Saglabātā vērtība ir daļa pirms komata.

int i = 3.14; // i has value 3

Piešķirot int vērtību mainīgajam pludiņa tipa mainīgajam, frakcionētā daļa kļūst nulle. Precizitāte parasti tiek zaudēta, ja veselajam skaitlim ir vairāk bitu, nekā peldošais mainīgais var uzņemt.

Int i=3;double pi = i; // pi has value 3.0

Ja mēs mēģinām piešķirt ārpus diapazona vērtību neparakstīta tipa mainīgajam, rezultāts ir vērtības atlikums% (modulo)

Piemēram, 8 bitu neparakstīta rakstzīme char var turēt vērtības no 0 līdz 255, ieskaitot. Piešķirot vērtību ārpus šī diapazona, kompilators piešķirs atlikušo daļu no šīs vērtības modulo 256. Tāpēc, izmantojot iepriekšējo loģiku, -1 piešķiršana 8 bitu neparakstītai rakstzīmei piešķir šim objektam vērtību 255.

unsigned char c = -1; // assuming 8-bit chars, c has value 255

Ja mēs mēģinām piešķirt ārpus diapazona vērtību parakstīta tipa objektam, rezultāts ir neparedzams. Tas nav definēts. Šķiet, ka programma darbojas ārpusē, tā var avarēt vai radīt atkritumu vērtības.

signed char c2 = 256; // assuming 8-bit chars, the value of c2 is undefined

Sastādītājs izmanto šos pašus reklāmguvumu veidus, ja mēs izmantojam viena veida vērtību, kur ir paredzēta cita veida vērtība.

int i = 42;if (i) // condition will evaluate as truei = 0;

Ja šī vērtība = 0, tad nosacījums ir nepatiess; visas pārējās vērtības (kas nav nulle) dod taisnību. Saskaņā ar to pašu jēdzienu, ja izmantojam bool aritmētiskajā izteiksmē, tā vērtība vienmēr tiek pārveidota par 0 vai 1. Rezultātā bool izmantošana aritmētiskajā izteiksmē parasti ir gandrīz nepareiza.

Uzmanību: nejauciet parakstītos un neparakstītos veidus

Izteiksmes, kas sajauc parakstītu un neparakstītu, var dot pārsteidzošus un nepareizus rezultātus, ja parakstītā vērtība ir negatīva. Kā jau tika apspriests iepriekš, parakstītās vērtības tiek automātiski pārvērstas neparakstītās.

Piemēram, aritmētiskā izteiksmē, piemēram,

x* y

Ja x ir -1 un y ir 1 un ja x un y ir int, tad, kā paredzēts, vērtība ir -1.

Ja x ir int un y nav parakstīts, tad šīs izteiksmes vērtība ir atkarīga no tā, cik bitu vesels skaitlis ir kompilācijas mašīnā. Mūsu mašīnā šī izteiksme dod 4294967295.

Reģistrēt mainīgos

Reģistru mainīgajiem ir ātrāka piekļuve salīdzinājumā ar atmiņas mainīgajiem. Tātad mainīgos, kas bieži tiek izmantoti C ++ programmā, var ierakstīt reģistros, izmantojot reģistra atslēgvārdu. Reģistra atslēgvārds liek sastādītājam glabāt norādīto mainīgo reģistrā. Vai sastādītājs to reģistrē, vai nē, tā ir sastādītāja izvēle. Parasti kompilatori paši veic dažādas optimizācijas, kas iekļauj dažus mainīgos reģistrā. C ++ programmā reģistru mainīgo skaits nav ierobežots. Bet sastādītājs var neglabāt mainīgo reģistrā. Tas ir tāpēc, ka reģistru atmiņa ir ļoti ierobežota, un OS to visbiežāk izmanto.

Definēt:

register int i;

Komentāri

Komentāri ir sastādītāja ignorētās koda daļas. Tas ļauj programmētājam izdarīt piezīmes attiecīgajās avota koda / programmas jomās. Komentāri ir vai nu bloku formā, vai atsevišķās rindās. Programmas komentāri ir paskaidrojumi. To var iekļaut C ++ kodā, kas palīdz ikvienam, kurš lasa tā pirmkodu. Visās programmēšanas valodās ir iespējami zināmi komentāri. C ++ atbalsta gan vienas, gan vairāku rindiņu komentārus.

  • Vienrindas komentāri ir tie, kas sākas ar // un turpinās līdz rindas beigām. Ja pēdējais rakstzīme komentāra rindiņā ir \, komentārs tiks turpināts nākamajā rindā.
  • Vairāku rindiņu komentāri sākas ar / * un beidzas ar * /.
/* This is a comment *//* C++ comments can also* span multiple lines*/

Bēgšanas secības

Dažām rakstzīmēm, piemēram, atpakaļatkāpes un vadības rakstzīmēm, nav redzama attēla. Šādas rakstzīmes ir pazīstamas kā nedrukājamas rakstzīmes. Citas rakstzīmes (vienas un dubultās pēdiņas, jautājuma zīme un slīpsvītra) daudzās programmēšanas valodās ir īpašas.

Mūsu programmas nevar tieši izmantot nevienu no šīm rakstzīmēm. Tā vietā mēs varam izmantot evakuācijas secību, lai attēlotu šādu simbolu. Bēgšanas secība sākas ar slīpsvītru.

C ++ programmēšanas valoda nosaka vairākas aizbēgšanas sekvences:

Ko tas dara?

Raksturs

Newline

\ n

Vertikālā cilne

\ v

Backslash

\\

Rakstatgriezes

\ r

Horizontālā cilne

\ t

Backspace

\ b

Jautājuma zīme

\?

Formfeed

\ f

Brīdinājums (zvans)

\ a

Divkāršs citāts

\ "

Viens citāts

\ '

Mēs izmantojam bēgšanas secību tā, it kā tā būtu viena rakstzīme:

cout << '\n'; // prints a newlinecout << "\tguru99!\n"; // prints a tab followed by "guru99!" and a newline

Mēs varam arī uzrakstīt vispārinātas aizbēgšanas sekvences \ x, kam seko viens vai vairāki heksadecimālie cipari. Vai arī mēs izmantojam \, kam seko viens, divi vai trīs astoņciparu skaitļi. Vispārīgā aizbēgšanas secība apzīmē rakstzīmes skaitlisko vērtību. Daži piemēri (pieņemot, ka latīņu-1 rakstzīmju kopa ir):

\7 (bell) \12 (newline) \40 (blank)\0 (null) \115 ('M') \x4d ('M')

Mēs varam izmantot iepriekš definētas evakuācijas sekvences, tāpat kā citas rakstzīmes.

cout << "Hi \x4dO\115!\n"; // prints Hi MOM! followed by a newlinecout << '\115' << '\n'; // prints M followed by a newline

Kopsavilkums

  • C ++ mainīgais nodrošina mums nosaukto uzglabāšanas iespēju.
  • C ++ mainīgo veidi: int, double, char, float, string, bool utt.
  • Ietverto (vai ligzdoto) darbības jomu sauc par iekšējo darbības jomu, un ietverošā darbības joma ir ārējā darbības joma.
  • Viena veida mainīgo var pārveidot par citu. Tas ir pazīstams kā "Tips Conversion".
  • Reģistru mainīgajiem ir ātrāka piekļuve salīdzinājumā ar atmiņas mainīgajiem.
  • Komentāri ir sastādītāja ignorētās koda daļas.
  • Dažām rakstzīmēm, piemēram, atpakaļatkāpes un vadības rakstzīmēm, nav redzama attēla.