Passing by pointer
Në shqip: Kalimi me pointer
ShpjegimiSQ
C-ja i kalon gjithmonë parametrat si kopje. Që një funksion ta ndryshojë një variabël të jashtme, i jep adresën e saj (&x) dhe funksioni punon me *. Shembulli klasik është funksioni swap që ndërron dy numra.
EnglishEN
C always passes parameters as copies. For a function to change an outside variable, you give it the variable's address (&x) and the function works through *. The classic example is a swap function that exchanges two numbers.
Si ta mendosh
Si t'i japësh dikujt çelësat e shtëpisë në vend të një fotoje të saj: me foton s'mund të ndryshojë asgjë, me çelësat po.
Lexoje në anglisht
Like giving someone your house keys instead of a photo of it: with the photo they can't change anything, with the keys they can.
Shembull kodic
void nderro(int *a, int *b) {
int tmp = *a; *a = *b; *b = tmp;
}
int x = 1, y = 2;
nderro(&x, &y); // x = 2, y = 1