LCS PREMIUM NOT a MERCEDES Postat Decembrie 16, 2024 LCS PREMIUM Postat Decembrie 16, 2024 ** Problema Reala ** Operatorii de incrementare ("++") si decrementare("--") , dupa cum cunoastem , pot fi situati atat inainte de variabila cat si dupa variabila . Prima poarta denumire de pre-(in/de)crementare iar cea de a doua , post-(in/de)crementare . Am trecut "in/de" deoarece desi , sunt operatiuni diametral opuse (una creste si cealalalta scade cu o unitate) , acestea au o problema comuna . Totusi , care-i problema ? Problema e constituita de DIFERENTA dintre post/pre . Astfel , ca intr-un anumit context , ele pot avea intelesuri diferite . ** Situatia 1 ** #include <stdio.h> int main() { // Sa presupunem doua variabile intregi int i = 0, j = 0; // In Situatia 1 : i++; // PostIncrementare cu o unitate ++j; // PreIncrementare cu o unitate printf("i : %d : \t j : %d \n", i,j); // Afisam // i = 0 ; j = 0 // Ambele se insumeaza cu o unitate // La fel si Decrementarea i--; // PostDecrementare cu o unitate --j; // PreDecrementare cu o unitate printf("i : %d : \t j : %d \n", i, j); // Afisam // i == 0 ; j == 0 return 0; } OBSERVATIE ** : IN ACEST CONTEXT , NU EXISTA DIFERENTE INTRE POST/PRE (IN/DE)CREMENTARE !! ** SITUATIE 2 ** : #include <stdio.h> int main() { // SITUATIE 2 // Sa presupunem ca adaugam inca o variabila int k = 0; //** **/ Si dorim efectuam o postincrementare k = i++; // i == 1 && k == 0 // K PREIA VALOAREA LUI I (0) INAINTE DE INCREMENTARE !!! printf("k : %d : \t i : %d \n", k, i); // Afisam j = i--; // j == 1 && i = 0 // J PREIA VALOAREA LUI I (1) INAINTE DE DECREMENTARE !!! printf("j : %d : \t i : %d \n", j, i); // Afisam // PRE-IN(DE)CREMENTARE k = ++i; /// k == 1 & i == 1 // LUI K II SE ATRIBUIE VALOAREA DEJA INCREMENTATA A LUI I !! printf("k : %d : \t i : %d \n", k, i); // Afisam j = --i; // j == 0 && i == 0 // LUI J II SE ATRIBUIE VALOAREA DEJA DECREMENTATA A LUI I !! printf("J : %d : \t i : %d \n", j, i); // Afisam return 0; } ** PE SCURT ** : PRE(IN)DECREMENTAREA PRIORITIZEAZA INCREMENTAREA IAR APOI , ATRIBUIREA !!! (POATE FI CEVA MAI RAPID DECAT A DOUA VARIANTA !) POST(IN)DECREMENTAREA PRIORITIZEAZA ATRIBUIREA IAR APOI , INCREMENTAREA !!!
Postări Recomandate