Operații aritmetice binare, unare (incrementale) - funcție sizeof

Operațiile sunt numite binare. dacă sunt implicați doi operatori. Se pare că totul este clar, dar din moment ce avem două operanzi în operație, apare o problemă interesantă:

Este posibil să se efectueze operații binare aritmetice cu diferite tipuri de date? Și dacă da, ce se va întâmpla la ieșirea operației?

Astfel, atunci când efectuăm diverse operații binare în care sunt implicate date de același tip, vom primi întotdeauna date de același tip la ieșire. De exemplu:

int a = 4, b = 8;
printf (".", a + b); / * Ne vom uita la funcția printf mai târziu, până când trebuie să știți că imprimă valorile pe ecran. Ca rezultat, obținem valoarea 12 a tipului int-nou * /

Acum, să analizăm operațiile aritmetice binare ale variabilelor cu diferite tipuri de date. În primul rând, vă voi da trei exemple și, după aceea, voi generaliza întreaga imagine:

#include
#include

int principal (int argc, char * argv [])
int a = 5; // 2 octeți
float b = 3; // 4 octeți
dublă c = 2; // 8 octeți
char d = "a"; // 1 octet

printf (". \ n", dimensiunea (a + b)); / * 4 octeți, deci tipul de flotant * /
printf (". \ n", dimensiunea (b + c)); / * 8 octeți, prin urmare tipul dublu * /
printf (". \ n", dimensiunea (a + d)); / * 2 octeți, deci tipul int * /

Dimensiunea funcției

Funcția sizeof returnează numărul de octeți alocați de memorie unei variabile. Din exemplu, este clar că atunci când adăugați variabile de diferite tipuri, atunci când ieșiți, obțineți o variabilă de tip mai mare. Da, despre tipul de caractere: caracterele pe care le stochează au un cod întreg, deci atunci când adăugați, nu apar probleme.

Totuși, există un moment de neînțeles. Se pare că operațiunile de adunare, înmulțire, divizare și scădere sunt cunoscute de toată lumea. Și ce fel de minune este asta - găsirea restului? Cel mai bine este să te uiți la exemple:

int a = 5, b = 2;
a = a% b; // Valoarea lui a va fi 1

Ie divizarea obișnuită apare, doar rezultatul este restul divizării. Toate trucurile acestui operator.

Operații unare

Măriți numărul cu unul.

int i = 6;
i ++; // incrementarea
i = i + 1; // echivalent cu increment

Scade numărul cu unul.

int i = 6;
Eu--; // decrement
i = i-1; // echivalent cu decrementarea

Întotdeauna, atunci când puteți utiliza incrementarea sau decrementarea, utilizați-o, deoarece aceasta crește performanța programului.

Dar există încă un punct foarte important. Creșterea și decrementarea este prefixul și postfixul:

int a = 5;
printf (".", ++ a); // Rezultat 6
printf (".", a ++); // Rezultat 5

Prin urmare, forma prefixului crește mai întâi și apoi efectuează următoarea acțiune, iar forma postfix - invers - execută mai întâi acțiunile, apoi mărește valoarea.

Aceasta încheie lecția. Nu vor exista sarcini, deoarece după ce ați citit lecția de mai multe ori, totul ar trebui să fie foarte clar.